@polymorphism-tech/morph-spec 3.0.0 → 3.0.1

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 (160) hide show
  1. package/CLAUDE.md +75 -371
  2. package/LICENSE +72 -72
  3. package/bin/detect-agents.js +225 -225
  4. package/bin/render-template.js +302 -302
  5. package/bin/semantic-detect-agents.js +246 -246
  6. package/bin/validate-agents-skills.js +251 -251
  7. package/bin/validate-agents.js +69 -69
  8. package/bin/validate-phase.js +263 -263
  9. package/content/.azure/README.md +293 -293
  10. package/content/.azure/docs/azure-devops-setup.md +454 -454
  11. package/content/.azure/docs/branch-strategy.md +398 -398
  12. package/content/.azure/docs/local-development.md +515 -515
  13. package/content/.azure/pipelines/pipeline-variables.yml +34 -34
  14. package/content/.azure/pipelines/prod-pipeline.yml +319 -319
  15. package/content/.azure/pipelines/staging-pipeline.yml +234 -234
  16. package/content/.azure/pipelines/templates/build-dotnet.yml +75 -75
  17. package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  18. package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  19. package/content/.azure/pipelines/templates/infra-deploy.yml +90 -90
  20. package/content/.claude/commands/morph-archive.md +79 -79
  21. package/content/.claude/commands/morph-deploy.md +529 -529
  22. package/content/.claude/commands/morph-infra.md +209 -209
  23. package/content/.claude/commands/morph-preflight.md +227 -227
  24. package/content/.claude/commands/morph-troubleshoot.md +122 -122
  25. package/content/.claude/settings.local.json +15 -15
  26. package/content/.claude/skills/{specialists → level-2-domains/architecture}/prompt-engineer.md +189 -189
  27. package/content/.claude/skills/{specialists → level-2-domains/architecture}/seo-growth-hacker.md +320 -320
  28. package/content/.claude/skills/{infra → level-2-domains/infrastructure}/azure-deploy-specialist.md +699 -699
  29. package/content/.morph/.morphversion +5 -5
  30. package/content/.morph/archive/.gitkeep +25 -25
  31. package/content/.morph/config/agents.json +7 -5
  32. package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  33. package/content/.morph/examples/api-nextjs/README.md +241 -241
  34. package/content/.morph/examples/api-nextjs/contracts.ts +307 -307
  35. package/content/.morph/examples/api-nextjs/spec.md +399 -399
  36. package/content/.morph/examples/api-nextjs/tasks.md +168 -168
  37. package/content/.morph/examples/micro-saas/README.md +125 -125
  38. package/content/.morph/examples/micro-saas/contracts.cs +358 -358
  39. package/content/.morph/examples/micro-saas/decisions.md +246 -246
  40. package/content/.morph/examples/micro-saas/spec.md +236 -236
  41. package/content/.morph/examples/micro-saas/tasks.md +150 -150
  42. package/content/.morph/examples/multi-agent/README.md +309 -309
  43. package/content/.morph/examples/multi-agent/contracts.cs +433 -433
  44. package/content/.morph/examples/multi-agent/spec.md +479 -479
  45. package/content/.morph/examples/multi-agent/tasks.md +185 -185
  46. package/content/.morph/examples/state-v3.json +188 -188
  47. package/content/.morph/features/.gitkeep +25 -25
  48. package/content/.morph/hooks/pre-commit-all.sh +48 -48
  49. package/content/.morph/hooks/pre-commit-specs.sh +49 -49
  50. package/content/.morph/hooks/pre-commit-tests.sh +60 -60
  51. package/content/.morph/project.md +160 -160
  52. package/content/.morph/schemas/agent.schema.json +296 -296
  53. package/content/.morph/specs/.gitkeep +20 -20
  54. package/content/.morph/standards/coding.md +377 -377
  55. package/content/.morph/standards/fluent-ui-setup.md +590 -590
  56. package/content/.morph/standards/migration-guide.md +514 -514
  57. package/content/.morph/standards/passkeys-auth.md +423 -423
  58. package/content/.morph/standards/vector-search-rag.md +536 -536
  59. package/content/.morph/state.json +17 -17
  60. package/content/.morph/templates/FluentDesignTheme.cs +149 -149
  61. package/content/.morph/templates/MudTheme.cs +281 -281
  62. package/content/.morph/templates/component.razor +239 -239
  63. package/content/.morph/templates/contracts.cs +217 -217
  64. package/content/.morph/templates/design-system.css +226 -226
  65. package/content/.morph/templates/infra/.dockerignore.example +89 -89
  66. package/content/.morph/templates/infra/Dockerfile.example +82 -82
  67. package/content/.morph/templates/infra/README.md +286 -286
  68. package/content/.morph/templates/infra/app-insights.bicep +63 -63
  69. package/content/.morph/templates/infra/app-service.bicep +164 -164
  70. package/content/.morph/templates/infra/azure-pipelines-deploy.yml +480 -480
  71. package/content/.morph/templates/infra/container-app-env.bicep +49 -49
  72. package/content/.morph/templates/infra/container-app.bicep +156 -156
  73. package/content/.morph/templates/infra/deploy-checklist.md +426 -426
  74. package/content/.morph/templates/infra/deploy.ps1 +229 -229
  75. package/content/.morph/templates/infra/deploy.sh +208 -208
  76. package/content/.morph/templates/infra/key-vault.bicep +91 -91
  77. package/content/.morph/templates/infra/main.bicep +189 -189
  78. package/content/.morph/templates/infra/parameters.dev.json +29 -29
  79. package/content/.morph/templates/infra/parameters.prod.json +29 -29
  80. package/content/.morph/templates/infra/parameters.staging.json +29 -29
  81. package/content/.morph/templates/infra/sql-database.bicep +103 -103
  82. package/content/.morph/templates/infra/storage.bicep +106 -106
  83. package/content/.morph/templates/integrations/asaas-client.cs +387 -387
  84. package/content/.morph/templates/integrations/asaas-webhook.cs +351 -351
  85. package/content/.morph/templates/integrations/azure-identity-config.cs +288 -288
  86. package/content/.morph/templates/integrations/clerk-config.cs +258 -258
  87. package/content/.morph/templates/job.cs +171 -171
  88. package/content/.morph/templates/migration.cs +83 -83
  89. package/content/.morph/templates/repository.cs +141 -141
  90. package/content/.morph/templates/saas/subscription.cs +347 -347
  91. package/content/.morph/templates/saas/tenant.cs +338 -338
  92. package/content/.morph/templates/service.cs +139 -139
  93. package/content/.morph/templates/sprint-status.yaml +68 -68
  94. package/content/.morph/templates/story.md +143 -143
  95. package/content/.morph/templates/test.cs +239 -239
  96. package/content/.morph/templates/ui-design-system.md +286 -286
  97. package/content/.morph/templates/ui-flows.md +336 -336
  98. package/content/.morph/templates/ui-mockups.md +133 -133
  99. package/content/.morph/test-infra/example.bicep +59 -59
  100. package/content/README.md +79 -79
  101. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
  102. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
  103. package/docs/api/scripts/collapse.js +38 -38
  104. package/docs/api/scripts/commonNav.js +28 -28
  105. package/docs/api/scripts/linenumber.js +25 -25
  106. package/docs/api/scripts/nav.js +12 -12
  107. package/docs/api/scripts/polyfill.js +3 -3
  108. package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
  109. package/docs/api/scripts/prettify/lang-css.js +2 -2
  110. package/docs/api/scripts/prettify/prettify.js +28 -28
  111. package/docs/api/scripts/search.js +98 -98
  112. package/docs/api/styles/jsdoc.css +776 -776
  113. package/docs/api/styles/prettify.css +80 -80
  114. package/docs/examples.md +328 -328
  115. package/docs/templates.md +418 -418
  116. package/package.json +1 -2
  117. package/scripts/postinstall.js +132 -132
  118. package/scripts/reorganize-skills.cjs +175 -0
  119. package/scripts/validate-agents-structure.cjs +52 -0
  120. package/scripts/validate-skills.cjs +180 -0
  121. package/src/commands/analyze-blazor-concurrency.js +193 -193
  122. package/src/commands/create-story.js +351 -351
  123. package/src/commands/deploy.js +780 -780
  124. package/src/commands/detect-agents.js +9 -0
  125. package/src/commands/detect.js +104 -104
  126. package/src/commands/generate.js +149 -149
  127. package/src/commands/lint-fluent.js +352 -352
  128. package/src/commands/rollback-phase.js +185 -185
  129. package/src/commands/session-summary.js +291 -291
  130. package/src/commands/shard-spec.js +224 -224
  131. package/src/commands/sprint-status.js +250 -250
  132. package/src/commands/state.js +334 -333
  133. package/src/commands/sync.js +167 -167
  134. package/src/commands/troubleshoot.js +222 -222
  135. package/src/commands/update.js +13 -1
  136. package/src/commands/validate-blazor-state.js +210 -210
  137. package/src/commands/validate-blazor.js +156 -156
  138. package/src/commands/validate-css.js +84 -84
  139. package/src/commands/validate-phase.js +221 -221
  140. package/src/lib/blazor-concurrency-analyzer.js +288 -288
  141. package/src/lib/blazor-state-validator.js +291 -291
  142. package/src/lib/blazor-validator.js +374 -374
  143. package/src/lib/css-validator.js +352 -352
  144. package/src/lib/design-system-generator.js +298 -298
  145. package/{detectors → src/lib/detectors}/config-detector.js +223 -223
  146. package/{detectors → src/lib/detectors}/conversation-analyzer.js +163 -163
  147. package/{detectors → src/lib/detectors}/index.js +84 -84
  148. package/{detectors → src/lib/detectors}/standards-generator.js +275 -275
  149. package/src/lib/learning-system.js +520 -520
  150. package/src/lib/mockup-generator.js +366 -366
  151. package/src/lib/state-manager.js +21 -4
  152. package/src/lib/troubleshoot-grep.js +194 -194
  153. package/src/lib/troubleshoot-index.js +144 -144
  154. package/src/lib/ui-detector.js +350 -350
  155. package/src/lib/validators/architecture-validator.js +387 -387
  156. package/src/lib/validators/package-validator.js +360 -360
  157. package/src/lib/validators/ui-contrast-validator.js +422 -422
  158. package/src/utils/logger.js +32 -32
  159. package/src/utils/version-checker.js +175 -175
  160. /package/{detectors → src/lib/detectors}/structure-detector.js +0 -0
@@ -1,227 +1,227 @@
1
- # Pre-Flight Check for Azure Deployment
2
-
3
- Validates project readiness before deploying to Azure.
4
-
5
- ## Uso
6
-
7
- ```
8
- /morph-preflight azure
9
- ```
10
-
11
- ## Objetivo
12
-
13
- Detectar problemas **antes** do deploy que causariam falhas em produção. Economiza tempo e evita debugging em ambiente Azure.
14
-
15
- ---
16
-
17
- ## Validações Executadas
18
-
19
- ### 1. Package Version Conflicts
20
-
21
- **O que verifica:**
22
- - `Azure.Identity` especificado explicitamente
23
- - Sem conflitos de versão (NU1605, NU1608)
24
- - Packages críticos com versões compatíveis
25
-
26
- **Como verificar:**
27
- ```bash
28
- dotnet restore --verbosity normal 2>&1 | grep -E "(NU1605|NU1608|warning)"
29
- ```
30
-
31
- **Fix comum:**
32
- ```xml
33
- <PackageReference Include="Azure.Identity" Version="1.14.2" />
34
- ```
35
-
36
- ---
37
-
38
- ### 2. EF Core Migrations
39
-
40
- **O que verifica:**
41
- - Sem pending model changes
42
- - Migrations aplicáveis existem
43
- - Migration scripts são válidos
44
-
45
- **Como verificar:**
46
- ```bash
47
- dotnet ef migrations has-pending-model-changes \
48
- --project src/Infrastructure \
49
- --startup-project src/Web
50
- ```
51
-
52
- **Fix comum:**
53
- ```bash
54
- dotnet ef migrations add <MigrationName> \
55
- --project src/Infrastructure \
56
- --startup-project src/Web
57
- ```
58
-
59
- ---
60
-
61
- ### 3. Dockerfile Validation (se Container Apps)
62
-
63
- **O que verifica:**
64
- - Dockerfile existe
65
- - Base image é válida
66
- - Multi-stage build configurado
67
- - EXPOSE ports corretos
68
- - ENTRYPOINT definido
69
-
70
- **Como verificar:**
71
- ```bash
72
- docker build --check .
73
- # Ou validação manual do Dockerfile
74
- ```
75
-
76
- ---
77
-
78
- ### 4. Blazor .NET 10 Assets
79
-
80
- **O que verifica:**
81
- - `RequiresAspNetWebAssets` está `true` (se Blazor + .NET 10)
82
- - Static web assets configurados corretamente
83
-
84
- **Como verificar:**
85
- ```bash
86
- grep -r "RequiresAspNetWebAssets" *.csproj
87
- ```
88
-
89
- **Fix:**
90
- ```xml
91
- <PropertyGroup>
92
- <RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>
93
- </PropertyGroup>
94
- ```
95
-
96
- ---
97
-
98
- ### 5. Bicep Syntax Validation
99
-
100
- **O que verifica:**
101
- - Arquivos `.bicep` sem erros de sintaxe
102
- - Parâmetros obrigatórios definidos
103
- - Resources com nomes válidos
104
-
105
- **Como verificar:**
106
- ```bash
107
- az bicep build --file infra/main.bicep --stdout > /dev/null
108
- ```
109
-
110
- ---
111
-
112
- ### 6. Key Vault Configuration
113
-
114
- **O que verifica:**
115
- - Key Vault URI configurado em `appsettings.json` ou environment
116
- - Não condiciona Key Vault ao ambiente (bug comum)
117
- - Managed Identity habilitada
118
-
119
- **Como verificar:**
120
- ```bash
121
- grep -r "KeyVaultUri\|AzureKeyVault" appsettings*.json
122
- grep -r "IsDevelopment()" Program.cs | grep -i keyvault
123
- ```
124
-
125
- **Anti-pattern a detectar:**
126
- ```csharp
127
- // ❌ ERRADO - Não carrega Key Vault em dev!
128
- if (!builder.Environment.IsDevelopment())
129
- {
130
- builder.Configuration.AddAzureKeyVault(...);
131
- }
132
- ```
133
-
134
- ---
135
-
136
- ### 7. Connection Strings Security
137
-
138
- **O que verifica:**
139
- - Connection strings não hardcoded em código
140
- - Secrets em Key Vault ou User Secrets
141
- - Sem credentials em `appsettings.json` (exceto Development)
142
-
143
- **Como verificar:**
144
- ```bash
145
- # Detectar passwords em appsettings
146
- grep -rE "(Password=|Pwd=|Secret=)" appsettings*.json | grep -v Development
147
- ```
148
-
149
- ---
150
-
151
- ## Output Exemplo
152
-
153
- ```
154
- 🔍 MORPH Pre-Flight Check: Azure Deployment
155
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
156
-
157
- ✅ Packages: No version conflicts detected
158
- ✅ Migrations: No pending model changes
159
- ✅ Dockerfile: Valid multi-stage build
160
- ✅ Blazor Assets: RequiresAspNetWebAssets=true
161
- ✅ Bicep: Syntax valid
162
- ❌ Key Vault: URI not configured in appsettings.Production.json
163
- ⚠️ Connection Strings: Found password in appsettings.Staging.json
164
-
165
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
166
-
167
- 📋 Summary: 5 passed, 1 failed, 1 warning
168
-
169
- ❌ BLOCKED: Fix Key Vault configuration before deploy!
170
-
171
- Recommended fixes:
172
- 1. Add KeyVaultUri to appsettings.Production.json
173
- 2. Move password from appsettings.Staging.json to Key Vault
174
- ```
175
-
176
- ---
177
-
178
- ## Workflow de Uso
179
-
180
- ### Antes de criar PR para produção
181
-
182
- ```bash
183
- /morph-preflight azure
184
- ```
185
-
186
- ### No pipeline CI/CD
187
-
188
- ```yaml
189
- - script: |
190
- # Package check
191
- dotnet restore 2>&1 | grep -E "NU1605|NU1608" && exit 1
192
-
193
- # Migration check
194
- dotnet ef migrations has-pending-model-changes \
195
- --project src/Infrastructure \
196
- --startup-project src/Web
197
- if [ $? -ne 0 ]; then exit 1; fi
198
-
199
- # Bicep check
200
- az bicep build --file infra/main.bicep --stdout > /dev/null
201
- if [ $? -ne 0 ]; then exit 1; fi
202
-
203
- echo "Pre-flight checks passed!"
204
- displayName: 'Pre-flight validation'
205
- ```
206
-
207
- ---
208
-
209
- ## Validações Futuras (Roadmap)
210
-
211
- - [ ] Cost estimation validation (dentro do budget)
212
- - [ ] RBAC permissions check
213
- - [ ] Network security rules validation
214
- - [ ] Health probe endpoint exists
215
- - [ ] Application Insights configured
216
-
217
- ---
218
-
219
- ## Referências
220
-
221
- - [azure.md](../../standards/azure.md) - Padrões Azure
222
- - [dotnet10-migration.md](../../standards/dotnet10-migration.md) - Breaking changes .NET 10
223
- - [blazor-efcore.md](../../../../framework/standards/blazor-efcore.md) - EF Core patterns
224
-
225
- ---
226
-
227
- *MORPH-SPEC by Polymorphism Tech*
1
+ # Pre-Flight Check for Azure Deployment
2
+
3
+ Validates project readiness before deploying to Azure.
4
+
5
+ ## Uso
6
+
7
+ ```
8
+ /morph-preflight azure
9
+ ```
10
+
11
+ ## Objetivo
12
+
13
+ Detectar problemas **antes** do deploy que causariam falhas em produção. Economiza tempo e evita debugging em ambiente Azure.
14
+
15
+ ---
16
+
17
+ ## Validações Executadas
18
+
19
+ ### 1. Package Version Conflicts
20
+
21
+ **O que verifica:**
22
+ - `Azure.Identity` especificado explicitamente
23
+ - Sem conflitos de versão (NU1605, NU1608)
24
+ - Packages críticos com versões compatíveis
25
+
26
+ **Como verificar:**
27
+ ```bash
28
+ dotnet restore --verbosity normal 2>&1 | grep -E "(NU1605|NU1608|warning)"
29
+ ```
30
+
31
+ **Fix comum:**
32
+ ```xml
33
+ <PackageReference Include="Azure.Identity" Version="1.14.2" />
34
+ ```
35
+
36
+ ---
37
+
38
+ ### 2. EF Core Migrations
39
+
40
+ **O que verifica:**
41
+ - Sem pending model changes
42
+ - Migrations aplicáveis existem
43
+ - Migration scripts são válidos
44
+
45
+ **Como verificar:**
46
+ ```bash
47
+ dotnet ef migrations has-pending-model-changes \
48
+ --project src/Infrastructure \
49
+ --startup-project src/Web
50
+ ```
51
+
52
+ **Fix comum:**
53
+ ```bash
54
+ dotnet ef migrations add <MigrationName> \
55
+ --project src/Infrastructure \
56
+ --startup-project src/Web
57
+ ```
58
+
59
+ ---
60
+
61
+ ### 3. Dockerfile Validation (se Container Apps)
62
+
63
+ **O que verifica:**
64
+ - Dockerfile existe
65
+ - Base image é válida
66
+ - Multi-stage build configurado
67
+ - EXPOSE ports corretos
68
+ - ENTRYPOINT definido
69
+
70
+ **Como verificar:**
71
+ ```bash
72
+ docker build --check .
73
+ # Ou validação manual do Dockerfile
74
+ ```
75
+
76
+ ---
77
+
78
+ ### 4. Blazor .NET 10 Assets
79
+
80
+ **O que verifica:**
81
+ - `RequiresAspNetWebAssets` está `true` (se Blazor + .NET 10)
82
+ - Static web assets configurados corretamente
83
+
84
+ **Como verificar:**
85
+ ```bash
86
+ grep -r "RequiresAspNetWebAssets" *.csproj
87
+ ```
88
+
89
+ **Fix:**
90
+ ```xml
91
+ <PropertyGroup>
92
+ <RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>
93
+ </PropertyGroup>
94
+ ```
95
+
96
+ ---
97
+
98
+ ### 5. Bicep Syntax Validation
99
+
100
+ **O que verifica:**
101
+ - Arquivos `.bicep` sem erros de sintaxe
102
+ - Parâmetros obrigatórios definidos
103
+ - Resources com nomes válidos
104
+
105
+ **Como verificar:**
106
+ ```bash
107
+ az bicep build --file infra/main.bicep --stdout > /dev/null
108
+ ```
109
+
110
+ ---
111
+
112
+ ### 6. Key Vault Configuration
113
+
114
+ **O que verifica:**
115
+ - Key Vault URI configurado em `appsettings.json` ou environment
116
+ - Não condiciona Key Vault ao ambiente (bug comum)
117
+ - Managed Identity habilitada
118
+
119
+ **Como verificar:**
120
+ ```bash
121
+ grep -r "KeyVaultUri\|AzureKeyVault" appsettings*.json
122
+ grep -r "IsDevelopment()" Program.cs | grep -i keyvault
123
+ ```
124
+
125
+ **Anti-pattern a detectar:**
126
+ ```csharp
127
+ // ❌ ERRADO - Não carrega Key Vault em dev!
128
+ if (!builder.Environment.IsDevelopment())
129
+ {
130
+ builder.Configuration.AddAzureKeyVault(...);
131
+ }
132
+ ```
133
+
134
+ ---
135
+
136
+ ### 7. Connection Strings Security
137
+
138
+ **O que verifica:**
139
+ - Connection strings não hardcoded em código
140
+ - Secrets em Key Vault ou User Secrets
141
+ - Sem credentials em `appsettings.json` (exceto Development)
142
+
143
+ **Como verificar:**
144
+ ```bash
145
+ # Detectar passwords em appsettings
146
+ grep -rE "(Password=|Pwd=|Secret=)" appsettings*.json | grep -v Development
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Output Exemplo
152
+
153
+ ```
154
+ 🔍 MORPH Pre-Flight Check: Azure Deployment
155
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
156
+
157
+ ✅ Packages: No version conflicts detected
158
+ ✅ Migrations: No pending model changes
159
+ ✅ Dockerfile: Valid multi-stage build
160
+ ✅ Blazor Assets: RequiresAspNetWebAssets=true
161
+ ✅ Bicep: Syntax valid
162
+ ❌ Key Vault: URI not configured in appsettings.Production.json
163
+ ⚠️ Connection Strings: Found password in appsettings.Staging.json
164
+
165
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
166
+
167
+ 📋 Summary: 5 passed, 1 failed, 1 warning
168
+
169
+ ❌ BLOCKED: Fix Key Vault configuration before deploy!
170
+
171
+ Recommended fixes:
172
+ 1. Add KeyVaultUri to appsettings.Production.json
173
+ 2. Move password from appsettings.Staging.json to Key Vault
174
+ ```
175
+
176
+ ---
177
+
178
+ ## Workflow de Uso
179
+
180
+ ### Antes de criar PR para produção
181
+
182
+ ```bash
183
+ /morph-preflight azure
184
+ ```
185
+
186
+ ### No pipeline CI/CD
187
+
188
+ ```yaml
189
+ - script: |
190
+ # Package check
191
+ dotnet restore 2>&1 | grep -E "NU1605|NU1608" && exit 1
192
+
193
+ # Migration check
194
+ dotnet ef migrations has-pending-model-changes \
195
+ --project src/Infrastructure \
196
+ --startup-project src/Web
197
+ if [ $? -ne 0 ]; then exit 1; fi
198
+
199
+ # Bicep check
200
+ az bicep build --file infra/main.bicep --stdout > /dev/null
201
+ if [ $? -ne 0 ]; then exit 1; fi
202
+
203
+ echo "Pre-flight checks passed!"
204
+ displayName: 'Pre-flight validation'
205
+ ```
206
+
207
+ ---
208
+
209
+ ## Validações Futuras (Roadmap)
210
+
211
+ - [ ] Cost estimation validation (dentro do budget)
212
+ - [ ] RBAC permissions check
213
+ - [ ] Network security rules validation
214
+ - [ ] Health probe endpoint exists
215
+ - [ ] Application Insights configured
216
+
217
+ ---
218
+
219
+ ## Referências
220
+
221
+ - [azure.md](../../standards/azure.md) - Padrões Azure
222
+ - [dotnet10-migration.md](../../standards/dotnet10-migration.md) - Breaking changes .NET 10
223
+ - [blazor-efcore.md](../../../../framework/standards/blazor-efcore.md) - EF Core patterns
224
+
225
+ ---
226
+
227
+ *MORPH-SPEC by Polymorphism Tech*