@polymorphism-tech/morph-spec 2.2.0 → 2.4.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.
Files changed (251) hide show
  1. package/CLAUDE.md +314 -1673
  2. package/LICENSE +72 -72
  3. package/README.md +515 -516
  4. package/bin/detect-agents.js +225 -225
  5. package/bin/morph-spec.js +358 -173
  6. package/bin/render-template.js +302 -302
  7. package/bin/semantic-detect-agents.js +246 -246
  8. package/bin/task-manager.js +429 -0
  9. package/bin/validate-agents-skills.js +251 -251
  10. package/bin/validate-agents.js +69 -69
  11. package/bin/validate-phase.js +263 -263
  12. package/bin/validate.js +369 -0
  13. package/content/.azure/README.md +293 -293
  14. package/content/.azure/docs/azure-devops-setup.md +454 -454
  15. package/content/.azure/docs/branch-strategy.md +398 -398
  16. package/content/.azure/docs/local-development.md +515 -515
  17. package/content/.azure/pipelines/pipeline-variables.yml +34 -34
  18. package/content/.azure/pipelines/prod-pipeline.yml +319 -319
  19. package/content/.azure/pipelines/staging-pipeline.yml +234 -234
  20. package/content/.azure/pipelines/templates/build-dotnet.yml +75 -75
  21. package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  22. package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  23. package/content/.azure/pipelines/templates/infra-deploy.yml +90 -90
  24. package/content/.claude/commands/morph-apply.md +221 -158
  25. package/content/.claude/commands/morph-archive.md +79 -79
  26. package/content/.claude/commands/morph-infra.md +209 -209
  27. package/content/.claude/commands/morph-preflight.md +227 -0
  28. package/content/.claude/commands/morph-proposal.md +122 -101
  29. package/content/.claude/commands/morph-status.md +86 -86
  30. package/content/.claude/commands/morph-troubleshoot.md +122 -0
  31. package/content/.claude/settings.local.json +15 -15
  32. package/content/.claude/skills/checklists/code-review.md +226 -0
  33. package/content/.claude/skills/checklists/morph-checklist.md +117 -0
  34. package/content/.claude/skills/checklists/simulation-checklist.md +77 -0
  35. package/content/.claude/skills/infra/bicep-architect.md +126 -419
  36. package/content/.claude/skills/infra/container-specialist.md +131 -437
  37. package/content/.claude/skills/infra/devops-engineer.md +119 -405
  38. package/content/.claude/skills/integrations/asaas-financial.md +130 -333
  39. package/content/.claude/skills/integrations/azure-identity.md +142 -309
  40. package/content/.claude/skills/integrations/clerk-auth.md +108 -290
  41. package/content/.claude/skills/integrations/resend-email.md +119 -0
  42. package/content/.claude/skills/specialists/ai-system-architect.md +192 -604
  43. package/content/.claude/skills/specialists/azure-architect.md +142 -142
  44. package/content/.claude/skills/specialists/code-analyzer.md +235 -0
  45. package/content/.claude/skills/specialists/dotnet-senior.md +287 -0
  46. package/content/.claude/skills/specialists/ef-modeler.md +113 -200
  47. package/content/.claude/skills/specialists/hangfire-orchestrator.md +126 -245
  48. package/content/.claude/skills/specialists/ms-agent-expert.md +109 -263
  49. package/content/.claude/skills/specialists/po-pm-advisor.md +197 -197
  50. package/content/.claude/skills/specialists/standards-architect.md +156 -78
  51. package/content/.claude/skills/specialists/testing-specialist.md +126 -0
  52. package/content/.claude/skills/specialists/ui-ux-designer.md +191 -1060
  53. package/content/.claude/skills/stacks/dotnet-blazor.md +210 -588
  54. package/content/.claude/skills/stacks/dotnet-nextjs.md +154 -402
  55. package/content/.claude/skills/workflows/morph-replicate.md +213 -0
  56. package/content/.claude/{commands/morph-clarify.md → skills/workflows/phase-clarify.md} +5 -58
  57. package/content/.claude/{commands/morph-design.md → skills/workflows/phase-design.md} +16 -86
  58. package/content/.claude/{commands/morph-setup.md → skills/workflows/phase-setup.md} +9 -17
  59. package/content/.claude/skills/workflows/phase-tasks.md +164 -0
  60. package/content/.claude/{commands/morph-uiux.md → skills/workflows/phase-uiux.md} +15 -88
  61. package/content/.morph/.morphversion +5 -5
  62. package/content/.morph/archive/.gitkeep +25 -25
  63. package/content/.morph/config/agents.json +378 -242
  64. package/content/.morph/config/config.template.json +89 -108
  65. package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  66. package/content/.morph/docs/workflows/design-impl.md +37 -0
  67. package/content/.morph/docs/workflows/fast-track.md +29 -0
  68. package/content/.morph/docs/workflows/full-morph.md +76 -0
  69. package/content/.morph/docs/workflows/standard.md +44 -0
  70. package/content/.morph/docs/workflows/ui-refresh.md +39 -0
  71. package/content/.morph/examples/api-nextjs/README.md +241 -241
  72. package/content/.morph/examples/api-nextjs/contracts.ts +307 -307
  73. package/content/.morph/examples/api-nextjs/spec.md +399 -399
  74. package/content/.morph/examples/api-nextjs/tasks.md +168 -168
  75. package/content/.morph/examples/micro-saas/README.md +125 -125
  76. package/content/.morph/examples/micro-saas/contracts.cs +358 -358
  77. package/content/.morph/examples/micro-saas/decisions.md +246 -246
  78. package/content/.morph/examples/micro-saas/spec.md +236 -236
  79. package/content/.morph/examples/micro-saas/tasks.md +150 -150
  80. package/content/.morph/examples/multi-agent/README.md +309 -309
  81. package/content/.morph/examples/multi-agent/contracts.cs +433 -433
  82. package/content/.morph/examples/multi-agent/spec.md +479 -479
  83. package/content/.morph/examples/multi-agent/tasks.md +185 -185
  84. package/content/.morph/examples/scheduled-reports/decisions.md +158 -0
  85. package/content/.morph/examples/scheduled-reports/proposal.md +95 -0
  86. package/content/.morph/examples/scheduled-reports/spec.md +267 -0
  87. package/content/.morph/examples/state-v3.json +188 -0
  88. package/content/.morph/features/.gitkeep +25 -25
  89. package/content/.morph/hooks/README.md +190 -239
  90. package/content/.morph/hooks/pre-commit-agents.sh +24 -24
  91. package/content/.morph/hooks/pre-commit-all.sh +48 -48
  92. package/content/.morph/hooks/pre-commit-specs.sh +49 -49
  93. package/content/.morph/hooks/pre-commit-tests.sh +60 -60
  94. package/content/.morph/project.md +160 -160
  95. package/content/.morph/schemas/agent.schema.json +296 -296
  96. package/content/.morph/schemas/tasks.schema.json +220 -0
  97. package/content/.morph/specs/.gitkeep +20 -20
  98. package/content/.morph/standards/agent-framework-blazor-ui.md +359 -0
  99. package/content/.morph/standards/agent-framework-production.md +410 -0
  100. package/content/.morph/standards/agent-framework-setup.md +413 -453
  101. package/content/.morph/standards/agent-framework-workflows.md +349 -0
  102. package/content/.morph/standards/architecture.md +325 -325
  103. package/content/.morph/standards/azure.md +605 -379
  104. package/content/.morph/standards/coding.md +377 -377
  105. package/content/.morph/standards/dotnet10-migration.md +520 -494
  106. package/content/.morph/standards/fluent-ui-setup.md +590 -590
  107. package/content/.morph/standards/migration-guide.md +514 -514
  108. package/content/.morph/standards/passkeys-auth.md +423 -423
  109. package/content/.morph/standards/vector-search-rag.md +536 -536
  110. package/content/.morph/state.json +17 -17
  111. package/content/.morph/templates/FluentDesignTheme.cs +149 -149
  112. package/content/.morph/templates/MudTheme.cs +281 -281
  113. package/content/.morph/templates/agent.cs +163 -172
  114. package/content/.morph/templates/clarify-questions.md +159 -0
  115. package/content/.morph/templates/component.razor +239 -239
  116. package/content/.morph/templates/contracts/Commands.cs +74 -0
  117. package/content/.morph/templates/contracts/Entities.cs +25 -0
  118. package/content/.morph/templates/contracts/Queries.cs +74 -0
  119. package/content/.morph/templates/contracts/README.md +74 -0
  120. package/content/.morph/templates/contracts.cs +217 -217
  121. package/content/.morph/templates/decisions.md +123 -106
  122. package/content/.morph/templates/design-system.css +226 -226
  123. package/content/.morph/templates/infra/.dockerignore.example +89 -89
  124. package/content/.morph/templates/infra/Dockerfile.example +82 -82
  125. package/content/.morph/templates/infra/README.md +286 -286
  126. package/content/.morph/templates/infra/app-insights.bicep +63 -63
  127. package/content/.morph/templates/infra/app-service.bicep +164 -164
  128. package/content/.morph/templates/infra/container-app-env.bicep +49 -49
  129. package/content/.morph/templates/infra/container-app.bicep +156 -156
  130. package/content/.morph/templates/infra/deploy-checklist.md +426 -0
  131. package/content/.morph/templates/infra/deploy.ps1 +229 -229
  132. package/content/.morph/templates/infra/deploy.sh +208 -208
  133. package/content/.morph/templates/infra/key-vault.bicep +91 -91
  134. package/content/.morph/templates/infra/main.bicep +189 -189
  135. package/content/.morph/templates/infra/parameters.dev.json +29 -29
  136. package/content/.morph/templates/infra/parameters.prod.json +29 -29
  137. package/content/.morph/templates/infra/parameters.staging.json +29 -29
  138. package/content/.morph/templates/infra/sql-database.bicep +103 -103
  139. package/content/.morph/templates/infra/storage.bicep +106 -106
  140. package/content/.morph/templates/integrations/asaas-client.cs +387 -387
  141. package/content/.morph/templates/integrations/asaas-webhook.cs +351 -351
  142. package/content/.morph/templates/integrations/azure-identity-config.cs +288 -288
  143. package/content/.morph/templates/integrations/clerk-config.cs +258 -258
  144. package/content/.morph/templates/job.cs +171 -171
  145. package/content/.morph/templates/migration.cs +83 -83
  146. package/content/.morph/templates/proposal.md +141 -155
  147. package/content/.morph/templates/recap.md +94 -105
  148. package/content/.morph/templates/repository.cs +141 -141
  149. package/content/.morph/templates/saas/subscription.cs +347 -347
  150. package/content/.morph/templates/saas/tenant.cs +338 -338
  151. package/content/.morph/templates/service.cs +139 -139
  152. package/content/.morph/templates/simulation.md +353 -0
  153. package/content/.morph/templates/spec.md +149 -148
  154. package/content/.morph/templates/sprint-status.yaml +68 -68
  155. package/content/.morph/templates/state.template.json +222 -222
  156. package/content/.morph/templates/story.md +143 -143
  157. package/content/.morph/templates/tasks.md +257 -235
  158. package/content/.morph/templates/test.cs +239 -239
  159. package/content/.morph/templates/ui-components.md +362 -276
  160. package/content/.morph/templates/ui-design-system.md +286 -286
  161. package/content/.morph/templates/ui-flows.md +336 -336
  162. package/content/.morph/templates/ui-mockups.md +133 -133
  163. package/content/.morph/test-infra/example.bicep +59 -59
  164. package/content/CLAUDE.md +150 -442
  165. package/content/README.md +79 -79
  166. package/detectors/config-detector.js +223 -223
  167. package/detectors/conversation-analyzer.js +163 -163
  168. package/detectors/index.js +84 -84
  169. package/detectors/standards-generator.js +275 -275
  170. package/detectors/structure-detector.js +245 -250
  171. package/docs/README.md +144 -149
  172. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
  173. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
  174. package/docs/api/scripts/collapse.js +38 -38
  175. package/docs/api/scripts/commonNav.js +28 -28
  176. package/docs/api/scripts/linenumber.js +25 -25
  177. package/docs/api/scripts/nav.js +12 -12
  178. package/docs/api/scripts/polyfill.js +3 -3
  179. package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
  180. package/docs/api/scripts/prettify/lang-css.js +2 -2
  181. package/docs/api/scripts/prettify/prettify.js +28 -28
  182. package/docs/api/scripts/search.js +98 -98
  183. package/docs/api/styles/jsdoc.css +776 -776
  184. package/docs/api/styles/prettify.css +80 -80
  185. package/docs/examples.md +328 -328
  186. package/docs/getting-started.md +301 -302
  187. package/docs/installation.md +361 -361
  188. package/docs/templates.md +418 -418
  189. package/docs/validation-checklist.md +265 -266
  190. package/package.json +80 -80
  191. package/scripts/postinstall.js +132 -132
  192. package/src/commands/advance-phase.js +183 -0
  193. package/src/commands/analyze-blazor-concurrency.js +193 -0
  194. package/src/commands/create-story.js +351 -351
  195. package/src/commands/detect-agents.js +139 -0
  196. package/src/commands/detect.js +104 -104
  197. package/src/commands/doctor.js +356 -280
  198. package/src/commands/generate.js +149 -149
  199. package/src/commands/init.js +258 -245
  200. package/src/commands/lint-fluent.js +352 -0
  201. package/src/commands/rollback-phase.js +185 -0
  202. package/src/commands/session-summary.js +291 -0
  203. package/src/commands/shard-spec.js +224 -224
  204. package/src/commands/sprint-status.js +250 -250
  205. package/src/commands/state.js +333 -333
  206. package/src/commands/sync.js +167 -167
  207. package/src/commands/task.js +78 -0
  208. package/src/commands/troubleshoot.js +222 -0
  209. package/src/commands/update.js +192 -159
  210. package/src/commands/validate-blazor-state.js +210 -0
  211. package/src/commands/validate-blazor.js +156 -0
  212. package/src/commands/validate-css.js +84 -0
  213. package/src/commands/validate-phase.js +221 -0
  214. package/src/lib/blazor-concurrency-analyzer.js +288 -0
  215. package/src/lib/blazor-state-validator.js +291 -0
  216. package/src/lib/blazor-validator.js +374 -0
  217. package/src/lib/complexity-analyzer.js +441 -292
  218. package/src/lib/continuous-validator.js +421 -0
  219. package/src/lib/css-validator.js +352 -0
  220. package/src/lib/decision-constraint-loader.js +109 -0
  221. package/src/lib/design-system-generator.js +298 -298
  222. package/src/lib/learning-system.js +520 -0
  223. package/src/lib/mockup-generator.js +366 -0
  224. package/src/lib/recap-generator.js +205 -0
  225. package/src/lib/state-manager.js +397 -340
  226. package/src/lib/troubleshoot-grep.js +194 -0
  227. package/src/lib/troubleshoot-index.js +144 -0
  228. package/src/lib/ui-detector.js +350 -0
  229. package/src/lib/validation-runner.js +231 -0
  230. package/src/lib/validators/architecture-validator.js +387 -0
  231. package/src/lib/validators/contract-compliance-validator.js +273 -0
  232. package/src/lib/validators/package-validator.js +360 -0
  233. package/src/lib/validators/ui-contrast-validator.js +422 -0
  234. package/src/utils/file-copier.js +179 -139
  235. package/src/utils/logger.js +32 -32
  236. package/src/utils/version-checker.js +175 -175
  237. package/content/.claude/commands/morph-costs.md +0 -206
  238. package/content/.claude/commands/morph-tasks.md +0 -319
  239. package/content/.claude/skills/specialists/cost-guardian.md +0 -110
  240. package/content/.claude/skills/stacks/shopify.md +0 -445
  241. package/content/.morph/config/azure-pricing.json +0 -70
  242. package/content/.morph/config/azure-pricing.schema.json +0 -50
  243. package/content/.morph/hooks/pre-commit-costs.sh +0 -91
  244. package/docs/api/cost-calculator.js.html +0 -513
  245. package/docs/api/design-system-generator.js.html +0 -382
  246. package/docs/api/global.html +0 -5263
  247. package/docs/api/index.html +0 -96
  248. package/docs/api/state-manager.js.html +0 -423
  249. package/src/commands/cost.js +0 -181
  250. package/src/commands/update-pricing.js +0 -206
  251. package/src/lib/cost-calculator.js +0 -429
@@ -1,158 +1,221 @@
1
- # Apply MORPH Feature Implementation - FASE 5
2
-
3
- Implemente a feature especificada seguindo as tasks definidas.
4
-
5
- ## Uso
6
-
7
- ```
8
- /morph-apply {feature-name}
9
- ```
10
-
11
- ## Pré-requisitos
12
-
13
- ### CRÍTICO: Validar Fases Anteriores
14
-
15
- **SEMPRE verifique que fases anteriores foram concluídas:**
16
-
17
- ```bash
18
- # Obter estado da feature
19
- node bin/state-manager.js get {feature-name}
20
- ```
21
-
22
- **Validações obrigatórias:**
23
-
24
- 1. **FASE 0 (Proposal):**
25
- - [ ] Output `proposal` criado
26
- - [ ] Agentes detectados e registrados
27
-
28
- 2. **FASE 1 (Setup):**
29
- - [ ] Phase passou por "setup"
30
- - [ ] Contexto carregado
31
-
32
- 3. **FASE 1.5 (UI/UX) - SE APLICÁVEL:**
33
- - [ ] Se `uiux-designer` está nos activeAgents → outputs ui-* devem existir
34
- - [ ] Se NÃO tem uiux-designer → pode pular
35
-
36
- 4. **FASE 2 (Design):**
37
- - [ ] Output `spec` criado
38
- - [ ] Output `contracts` criado
39
- - [ ] Output `decisions` criado
40
-
41
- 5. **FASE 3 (Clarify):**
42
- - [ ] Phase passou por "clarify"
43
- - [ ] Spec atualizado com clarificações
44
-
45
- 6. **FASE 4 (Tasks):**
46
- - [ ] Output `tasks` criado
47
- - [ ] `tasks.json` tem array de tasks
48
- - [ ] `tasks.total` > 0 no state
49
-
50
- **Se QUALQUER validação falhar:**
51
- ```
52
- ❌ ERRO: Fase {X} não foi concluída!
53
-
54
- Para continuar, execute primeiro:
55
- - /morph-proposal (FASE 0)
56
- - /morph-setup (FASE 1)
57
- - /morph-uiux (FASE 1.5 - se necessário)
58
- - /morph-design (FASE 2)
59
- - /morph-clarify (FASE 3)
60
- - /morph-tasks (FASE 4)
61
-
62
- Fase atual: {current_phase}
63
- ```
64
-
65
- **NÃO prossiga com implementação até todas as fases estarem completas!**
66
-
67
- ### Arquivos Necessários
68
-
69
- - [ ] Feature existe em `.morph/project/outputs/{feature}/`
70
- - [ ] `spec.md` está aprovado
71
- - [ ] `tasks.json` tem tasks definidas
72
- - [ ] `contracts.cs` define as interfaces
73
-
74
- ## Workflow
75
-
76
- 1. **Carregue o contexto**:
77
- - Leia `.morph/project/outputs/{feature}/spec.md`
78
- - Leia `.morph/project/outputs/{feature}/tasks.json`
79
- - Leia `.morph/project/outputs/{feature}/contracts.cs`
80
- - Leia framework/standards/ e .morph/project/standards/ para padrões
81
-
82
- 2. **Inicialize state tracking**:
83
- ```bash
84
- # Atualizar fase para implement
85
- node bin/state-manager.js set {feature} phase implement
86
- node bin/state-manager.js set {feature} status in_progress
87
-
88
- # Definir total de tasks (baseado em tasks.json)
89
- node bin/state-manager.js set {feature} tasks.total {N}
90
- ```
91
-
92
- 3. **Execute tasks em ordem**:
93
- - Marque task como `[~] In Progress`
94
- - Atualize state: `node bin/state-manager.js set {feature} tasks.inProgress 1`
95
- - Implemente seguindo os padrões
96
- - Marque task como `[x] Completed`
97
- - Atualize state: `node bin/state-manager.js set {feature} tasks.completed {X}`
98
- - Atualize state: `node bin/state-manager.js set {feature} tasks.inProgress 0`
99
-
100
- 4. **Checkpoints a cada 3 tasks**:
101
- ```bash
102
- # Registrar checkpoint
103
- node bin/state-manager.js checkpoint {feature} "Completadas tasks T001-T003"
104
- ```
105
- - Pause e apresente o que foi feito
106
- - Mostre progresso: `node bin/state-manager.js list`
107
- - Aguarde aprovação para continuar
108
-
109
- 5. **Marcar outputs criados**:
110
- Sempre que gerar um arquivo de output:
111
- ```bash
112
- node bin/state-manager.js mark-output {feature} spec
113
- node bin/state-manager.js mark-output {feature} contracts
114
- node bin/state-manager.js mark-output {feature} tasks
115
- # etc.
116
- ```
117
-
118
- 6. **Ao finalizar**:
119
- - Atualize state: `node bin/state-manager.js set {feature} status done`
120
- - Marque recap: `node bin/state-manager.js mark-output {feature} recap`
121
- - Atualize `recap.md` com resultados
122
- - Liste arquivos criados/modificados
123
- - Calcule custo real vs estimado
124
-
125
- ## Padrões Obrigatórios
126
-
127
- Siga sempre (priorize project/standards/ se houver):
128
- - `framework/standards/coding.md` - Padrões base do MORPH
129
- - `.morph/project/standards/coding.md` - Padrões específicos do projeto
130
- - `.morph/project/standards/architecture.md` - Estrutura de projeto
131
- - `.morph/project/standards/azure.md` - Recursos e custos
132
-
133
- ## Validações
134
-
135
- Antes de marcar task como completa:
136
- - [ ] Código compila
137
- - [ ] Segue padrões de nomenclatura
138
- - [ ] Testes unitários (se aplicável)
139
- - [ ] Sem hardcoded secrets
140
-
141
- ## Output
142
-
143
- Ao final de cada task, mostre:
144
- 1. Task completada
145
- 2. Arquivos criados/modificados
146
- 3. Próxima task
147
- 4. Progresso geral (X/Y tasks) - usar `node bin/state-manager.js get {feature}`
148
-
149
- Ao final de cada checkpoint:
150
- ```bash
151
- node bin/state-manager.js list
152
- ```
153
-
154
- Isso mostra o progresso atualizado automaticamente.
155
-
156
- ---
157
-
158
- **Feature:** $ARGUMENTS
1
+ # Apply MORPH Feature Implementation - FASE 5
2
+
3
+ Implemente a feature especificada seguindo as tasks definidas.
4
+
5
+ ## Uso
6
+
7
+ ```
8
+ /morph-apply {feature-name}
9
+ ```
10
+
11
+ ## Pré-requisitos
12
+
13
+ ### CRÍTICO: Validar Fases Anteriores
14
+
15
+ **SEMPRE verifique que fases anteriores foram concluídas:**
16
+
17
+ ```bash
18
+ # Obter estado da feature
19
+ npx morph-spec state get {feature-name}
20
+ ```
21
+
22
+ **Validações obrigatórias:**
23
+
24
+ 1. **FASE 0 (Proposal):**
25
+ - [ ] Output `proposal` criado
26
+ - [ ] Agentes detectados e registrados
27
+
28
+ 2. **FASE 1 (Setup):**
29
+ - [ ] Phase passou por "setup"
30
+ - [ ] Contexto carregado
31
+
32
+ 3. **FASE 1.5 (UI/UX) - SE APLICÁVEL:**
33
+ - [ ] Se `uiux-designer` está nos activeAgents → outputs ui-* devem existir
34
+ - [ ] Se NÃO tem uiux-designer → pode pular
35
+
36
+ 4. **FASE 2 (Design):**
37
+ - [ ] Output `spec` criado
38
+ - [ ] Output `contracts` criado
39
+ - [ ] Output `decisions` criado
40
+
41
+ 5. **FASE 3 (Clarify):**
42
+ - [ ] Phase passou por "clarify"
43
+ - [ ] Spec atualizado com clarificações
44
+
45
+ 6. **FASE 4 (Tasks):**
46
+ - [ ] Output `tasks` criado
47
+ - [ ] `tasks.json` tem array de tasks
48
+ - [ ] `tasks.total` > 0 no state
49
+
50
+ **Se QUALQUER validação falhar:**
51
+ ```
52
+ ❌ ERRO: Fase {X} não foi concluída!
53
+
54
+ Para completar as fases de planejamento, execute:
55
+ /morph-proposal {feature-name}
56
+ (Resume automaticamente da fase atual: {current_phase})
57
+ ```
58
+
59
+ **NÃO prossiga com implementação até todas as fases estarem completas!**
60
+
61
+ ### Arquivos Necessários
62
+
63
+ - [ ] Feature existe em `.morph/project/outputs/{feature}/`
64
+ - [ ] `spec.md` está aprovado
65
+ - [ ] `tasks.json` tem tasks definidas
66
+ - [ ] `contracts.cs` define as interfaces
67
+
68
+ ## Workflow
69
+
70
+ 1. **Carregue o contexto**:
71
+ - Leia `.morph/project/outputs/{feature}/spec.md`
72
+ - Leia `.morph/project/outputs/{feature}/tasks.json`
73
+ - Leia `.morph/project/outputs/{feature}/contracts.cs`
74
+ - Leia framework/standards/ e .morph/project/standards/ para padrões
75
+
76
+ 2. **Inicialize state tracking**:
77
+ ```bash
78
+ # Atualizar fase para implement
79
+ npx morph-spec state set {feature} phase implement
80
+ npx morph-spec state set {feature} status in_progress
81
+
82
+ # Definir total de tasks (baseado em tasks.json)
83
+ npx morph-spec state set {feature} tasks.total {N}
84
+ ```
85
+
86
+ 3. **Execute tasks em ordem**:
87
+ - Marque task como in progress: `npx morph-spec task start {feature} {task-id}`
88
+ - Implemente seguindo os padrões e contracts.cs
89
+ - Complete task: `npx morph-spec task done {feature} {task-id}`
90
+ - **Validators run automatically** on task-done. If validation fails:
91
+ - Read the error messages and fix violations
92
+ - Re-run `task done` — do NOT use `--skip-validation` unless user authorizes
93
+ - Framework auto-manages checkpoints (every 3 tasks, includes validation summary)
94
+
95
+ 4. **Phase advancement**:
96
+ ```bash
97
+ # Advance to next phase (validates advances → shows next steps)
98
+ npx morph-spec phase advance {feature}
99
+ ```
100
+
101
+ 5. **Marcar outputs criados**:
102
+ Sempre que gerar um arquivo de output:
103
+ ```bash
104
+ npx morph-spec state mark-output {feature} spec
105
+ npx morph-spec state mark-output {feature} contracts
106
+ npx morph-spec state mark-output {feature} tasks
107
+ # etc.
108
+ ```
109
+
110
+ 6. **Ao finalizar**:
111
+ - Generate recap automatically: `npx morph-spec generate recap {feature}`
112
+ - Atualize state: `npx morph-spec state set {feature} status done`
113
+ - Marque recap: `npx morph-spec state mark-output {feature} recap`
114
+ - Liste arquivos criados/modificados
115
+ - Calcule custo real vs estimado
116
+
117
+ ## Padrões Obrigatórios
118
+
119
+ Siga sempre (priorize project/standards/ se houver):
120
+ - `framework/standards/coding.md` - Padrões base do MORPH
121
+ - `.morph/project/standards/coding.md` - Padrões específicos do projeto
122
+ - `.morph/project/standards/architecture.md` - Estrutura de projeto
123
+ - `.morph/project/standards/azure.md` - Recursos e custos
124
+
125
+ ---
126
+
127
+ ## Checklist Pré-Deploy Azure
128
+
129
+ **ANTES de fazer deploy para Azure, execute `/morph-preflight azure` ou verifique manualmente:**
130
+
131
+ ### Packages e Build
132
+
133
+ - [ ] Packages sem conflitos de versão (`dotnet restore` sem warnings NU1605/NU1608)
134
+ - [ ] `Azure.Identity` especificado explicitamente no `.csproj`
135
+ - [ ] Build passa sem erros (`dotnet build`)
136
+
137
+ ### EF Core Migrations
138
+
139
+ - [ ] Sem pending model changes (`dotnet ef migrations has-pending-model-changes`)
140
+ - [ ] Migration criada para todas as mudanças de schema
141
+ - [ ] Migration script revisado (`dotnet ef migrations script --idempotent`)
142
+
143
+ ### Blazor .NET 10 (se aplicável)
144
+
145
+ - [ ] `.csproj` contém `<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>`
146
+ - [ ] Static assets funcionando localmente
147
+
148
+ ### Container/Docker (se Container Apps)
149
+
150
+ - [ ] Dockerfile válido e testado localmente
151
+ - [ ] `docker build` funciona sem erros
152
+ - [ ] Container roda localmente (`docker run`)
153
+
154
+ ### Infraestrutura Azure
155
+
156
+ - [ ] Bicep sem erros de sintaxe (`az bicep build`)
157
+ - [ ] Key Vault URI configurado em `appsettings.Production.json`
158
+ - [ ] Connection strings em Key Vault (não hardcoded)
159
+ - [ ] Managed Identity habilitada nos recursos
160
+
161
+ ### Segurança
162
+
163
+ - [ ] Sem secrets em código ou `appsettings.json` (exceto Development)
164
+ - [ ] HTTPS enforçado
165
+ - [ ] CORS configurado corretamente
166
+
167
+ ### Comandos de Verificação
168
+
169
+ ```bash
170
+ # 1. Package conflicts
171
+ dotnet restore 2>&1 | grep -E "NU1605|NU1608"
172
+
173
+ # 2. Pending migrations
174
+ dotnet ef migrations has-pending-model-changes \
175
+ --project src/Infrastructure \
176
+ --startup-project src/Web
177
+
178
+ # 3. Bicep validation
179
+ az bicep build --file infra/main.bicep --stdout > /dev/null
180
+
181
+ # 4. Docker build
182
+ docker build -t myapp:test .
183
+
184
+ # 5. Secret scan (basic)
185
+ grep -rE "(Password=|Pwd=|Secret=)" appsettings*.json | grep -v Development
186
+ ```
187
+
188
+ ### Se QUALQUER item falhar
189
+
190
+ ```
191
+ ❌ BLOQUEADO: Não faça deploy até resolver!
192
+
193
+ Use /morph-preflight azure para diagnóstico detalhado.
194
+ ```
195
+
196
+ ## Validações
197
+
198
+ Antes de marcar task como completa:
199
+ - [ ] Código compila
200
+ - [ ] Segue padrões de nomenclatura
201
+ - [ ] Testes unitários (se aplicável)
202
+ - [ ] Sem hardcoded secrets
203
+
204
+ ## Output
205
+
206
+ Ao final de cada task, mostre:
207
+ 1. Task completada
208
+ 2. Arquivos criados/modificados
209
+ 3. Próxima task
210
+ 4. Progresso geral (X/Y tasks) - usar `npx morph-spec state get {feature}`
211
+
212
+ Ao final de cada checkpoint:
213
+ ```bash
214
+ npx morph-spec state list
215
+ ```
216
+
217
+ Isso mostra o progresso atualizado automaticamente.
218
+
219
+ ---
220
+
221
+ **Feature:** $ARGUMENTS
@@ -1,79 +1,79 @@
1
- # Archive MORPH Feature
2
-
3
- Arquive uma feature concluída, movendo-a de `project/outputs/` para `project/archive/`.
4
-
5
- ## Pré-requisitos
6
-
7
- Verifique antes de arquivar:
8
- - [ ] Feature existe em `.morph/project/outputs/{feature}/`
9
- - [ ] Todas as tasks estão completas
10
- - [ ] `recap.md` está preenchido
11
- - [ ] Código está em produção (ou staging)
12
-
13
- ## Workflow
14
-
15
- 1. **Valide a conclusão**:
16
- - Leia `.morph/project/outputs/{feature}/tasks.json`
17
- - Verifique que todas tasks estão completadas
18
- - Confirme com o usuário se pode arquivar
19
-
20
- 2. **Complete o recap**:
21
- - Atualize `.morph/project/outputs/{feature}/recap.md`
22
- - Preencha métricas finais
23
- - Documente lições aprendidas
24
-
25
- 3. **Extraia specs**:
26
- - Se a feature define comportamento permanente
27
- - Copie spec relevante para `.morph/project/specs/`
28
- - Isso vira a "verdade atual" do sistema
29
-
30
- 4. **Mova para archive**:
31
- ```
32
- .morph/project/outputs/{feature}/ → .morph/project/archive/{feature}/
33
- ```
34
-
35
- 5. **Atualize métricas do projeto**:
36
- - Incremente contador de features
37
- - Atualize custo total
38
- - Atualize tempo total
39
-
40
- ## Output
41
-
42
- Apresente resumo do arquivamento:
43
-
44
- ```
45
- ╔════════════════════════════════════════════╗
46
- ║ FEATURE ARCHIVED ║
47
- ╠════════════════════════════════════════════╣
48
- ║ Feature: {name} ║
49
- ║ Completed: {date} ║
50
- ╠════════════════════════════════════════════╣
51
- ║ METRICS ║
52
- ╠════════════════════════════════════════════╣
53
- ║ Tasks: {X}/{X} completed ║
54
- ║ Time: {X}h (estimated: {Y}h) ║
55
- ║ Cost Impact: +${X}/month ║
56
- ╠════════════════════════════════════════════╣
57
- ║ FILES ║
58
- ╠════════════════════════════════════════════╣
59
- ║ Created: {X} files ║
60
- ║ Modified: {Y} files ║
61
- ║ Tests: {Z} files ({W}% coverage) ║
62
- ╠════════════════════════════════════════════╣
63
- ║ ARCHIVED TO ║
64
- ╠════════════════════════════════════════════╣
65
- ║ .morph/project/archive/{feature}/ ║
66
- ╚════════════════════════════════════════════╝
67
- ```
68
-
69
- ## Specs Extraídas
70
-
71
- Se houver specs extraídas:
72
- ```
73
- Specs extracted to .morph/project/specs/:
74
- - {domain}/spec.md - {description}
75
- ```
76
-
77
- ---
78
-
79
- **Feature to archive:** $ARGUMENTS
1
+ # Archive MORPH Feature
2
+
3
+ Arquive uma feature concluída, movendo-a de `project/outputs/` para `project/archive/`.
4
+
5
+ ## Pré-requisitos
6
+
7
+ Verifique antes de arquivar:
8
+ - [ ] Feature existe em `.morph/project/outputs/{feature}/`
9
+ - [ ] Todas as tasks estão completas
10
+ - [ ] `recap.md` está preenchido
11
+ - [ ] Código está em produção (ou staging)
12
+
13
+ ## Workflow
14
+
15
+ 1. **Valide a conclusão**:
16
+ - Leia `.morph/project/outputs/{feature}/tasks.json`
17
+ - Verifique que todas tasks estão completadas
18
+ - Confirme com o usuário se pode arquivar
19
+
20
+ 2. **Complete o recap**:
21
+ - Atualize `.morph/project/outputs/{feature}/recap.md`
22
+ - Preencha métricas finais
23
+ - Documente lições aprendidas
24
+
25
+ 3. **Extraia specs**:
26
+ - Se a feature define comportamento permanente
27
+ - Copie spec relevante para `.morph/project/specs/`
28
+ - Isso vira a "verdade atual" do sistema
29
+
30
+ 4. **Mova para archive**:
31
+ ```
32
+ .morph/project/outputs/{feature}/ → .morph/project/archive/{feature}/
33
+ ```
34
+
35
+ 5. **Atualize métricas do projeto**:
36
+ - Incremente contador de features
37
+ - Atualize custo total
38
+ - Atualize tempo total
39
+
40
+ ## Output
41
+
42
+ Apresente resumo do arquivamento:
43
+
44
+ ```
45
+ ╔════════════════════════════════════════════╗
46
+ ║ FEATURE ARCHIVED ║
47
+ ╠════════════════════════════════════════════╣
48
+ ║ Feature: {name} ║
49
+ ║ Completed: {date} ║
50
+ ╠════════════════════════════════════════════╣
51
+ ║ METRICS ║
52
+ ╠════════════════════════════════════════════╣
53
+ ║ Tasks: {X}/{X} completed ║
54
+ ║ Time: {X}h (estimated: {Y}h) ║
55
+ ║ Cost Impact: +${X}/month ║
56
+ ╠════════════════════════════════════════════╣
57
+ ║ FILES ║
58
+ ╠════════════════════════════════════════════╣
59
+ ║ Created: {X} files ║
60
+ ║ Modified: {Y} files ║
61
+ ║ Tests: {Z} files ({W}% coverage) ║
62
+ ╠════════════════════════════════════════════╣
63
+ ║ ARCHIVED TO ║
64
+ ╠════════════════════════════════════════════╣
65
+ ║ .morph/project/archive/{feature}/ ║
66
+ ╚════════════════════════════════════════════╝
67
+ ```
68
+
69
+ ## Specs Extraídas
70
+
71
+ Se houver specs extraídas:
72
+ ```
73
+ Specs extracted to .morph/project/specs/:
74
+ - {domain}/spec.md - {description}
75
+ ```
76
+
77
+ ---
78
+
79
+ **Feature to archive:** $ARGUMENTS