@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
@@ -0,0 +1,213 @@
1
+ # Skill: /morph-replicate
2
+
3
+ > Workflow simplificado para replicar prototipos HTML em Blazor.
4
+ > Use quando tiver um prototipo HTML pronto e precisar converter para codigo Blazor funcional.
5
+
6
+ ## Comando
7
+
8
+ ```bash
9
+ /morph-replicate {feature-name} {prototype-path}
10
+ ```
11
+
12
+ **Exemplo:**
13
+ ```bash
14
+ /morph-replicate ui-redesign prototipo/
15
+ ```
16
+
17
+ ---
18
+
19
+ ## Workflow Simplificado
20
+
21
+ ### FASE 1: ANALISE DO PROTOTIPO
22
+
23
+ 1. **Ler todos os arquivos HTML em `{prototype-path}/`**
24
+ ```bash
25
+ # Encontrar todos os arquivos HTML
26
+ glob: {prototype-path}/**/*.html
27
+ glob: {prototype-path}/**/code.html # Pattern comum de prototipos
28
+ ```
29
+
30
+ 2. **Extrair padroes de cada arquivo:**
31
+ - Layout (grid, flexbox, estrutura)
32
+ - Componentes (cards, buttons, forms, modals)
33
+ - Cores (extrair de inline styles e CSS)
34
+ - Fontes (font-family, sizes)
35
+ - Espacamentos (padding, margin, gap)
36
+ - Classes CSS usadas
37
+
38
+ 3. **Gerar mapeamento HTML → Blazor:**
39
+
40
+ | HTML Pattern | Blazor Equivalente |
41
+ |--------------|-------------------|
42
+ | `<button class="btn-primary">` | `<FluentButton Appearance="Appearance.Accent">` |
43
+ | `<div class="card">` | `<FluentCard>` ou HTML customizado |
44
+ | `<input type="text">` | `<FluentTextField>` |
45
+ | `<div class="modal">` | Modal customizado (se design especifico) |
46
+
47
+ 4. **Gerar lista de classes CSS a criar:**
48
+ ```markdown
49
+ ## Classes CSS Necessarias
50
+
51
+ - [ ] .page-layout
52
+ - [ ] .home-hero
53
+ - [ ] .card-premium
54
+ - [ ] .checkout-form
55
+ - [ ] .modal-overlay
56
+ - [ ] .animate-slideInUp
57
+ ```
58
+
59
+ **PAUSA:** Aprovar mapeamento e lista de CSS
60
+
61
+ ---
62
+
63
+ ### FASE 2: TASKS (Lista de Telas)
64
+
65
+ Gerar lista de telas para implementar na ordem correta:
66
+
67
+ ```markdown
68
+ ## Tasks de Implementacao
69
+
70
+ ### T001: Setup Design System
71
+ - Criar/atualizar wwwroot/css/design-system.css
72
+ - Adicionar todas as classes CSS listadas
73
+ - Validar com `morph-spec validate-css`
74
+
75
+ ### T002: {Nome da Tela 1}
76
+ - Ler: {prototype-path}/{tela1}.html
77
+ - Criar/Atualizar: Pages/{Tela1}.razor
78
+ - Componentes: FluentCard, FluentButton, etc.
79
+ - CSS: .home-hero, .card-premium
80
+
81
+ ### T003: {Nome da Tela 2}
82
+ - Ler: {prototype-path}/{tela2}.html
83
+ - Criar/Atualizar: Pages/{Tela2}.razor
84
+ - ...
85
+
86
+ ### TXXX: Validacao Final
87
+ - Build completo
88
+ - `morph-spec validate-css`
89
+ - Testar responsividade
90
+ ```
91
+
92
+ **PAUSA:** Aprovar lista de tasks
93
+
94
+ ---
95
+
96
+ ### FASE 3: IMPLEMENT (Por Tela)
97
+
98
+ Para cada tela, seguir este fluxo:
99
+
100
+ 1. **Ler HTML do prototipo**
101
+ ```
102
+ Read: {prototype-path}/{tela}.html
103
+ ```
104
+
105
+ 2. **Ler arquivo .razor atual** (se existir)
106
+ ```
107
+ Read: Pages/{Tela}.razor
108
+ ```
109
+
110
+ 3. **Reescrever .razor usando Fluent UI/MudBlazor**
111
+ - Manter estrutura de layout do prototipo
112
+ - Substituir elementos HTML por componentes Blazor
113
+ - Aplicar classes CSS do design-system
114
+
115
+ 4. **Adicionar CSS ao design-system.css**
116
+ - Se classe nova foi usada no .razor
117
+ - Seguir padrao de nomenclatura (prefixo por pagina)
118
+
119
+ 5. **Build para validar**
120
+ ```bash
121
+ dotnet build
122
+ ```
123
+
124
+ 6. **Validar CSS**
125
+ ```bash
126
+ morph-spec validate-css src/MyApp.Web
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Outputs
132
+
133
+ Este workflow gera apenas:
134
+
135
+ | Arquivo | Descricao |
136
+ |---------|-----------|
137
+ | `.razor` files | Paginas convertidas |
138
+ | `design-system.css` | CSS atualizado |
139
+ | `recap.md` | Resumo da implementacao (ao final) |
140
+
141
+ **NAO gera:** proposal.md, spec.md, contracts.cs, tasks.json
142
+
143
+ ---
144
+
145
+ ## Exemplo de Execucao
146
+
147
+ ```markdown
148
+ /morph-replicate checkout-redesign prototipo/checkout/
149
+
150
+ 📁 Analisando prototipo em prototipo/checkout/...
151
+
152
+ **Arquivos encontrados:**
153
+ - step1-cart.html
154
+ - step2-payment.html
155
+ - step3-confirmation.html
156
+
157
+ **Padroes extraidos:**
158
+
159
+ Cores:
160
+ - Primary: #FF6B35
161
+ - Secondary: #2D3047
162
+ - Background: #FAFAFA
163
+
164
+ Classes CSS a criar:
165
+ - [ ] .checkout-layout
166
+ - [ ] .checkout-steps
167
+ - [ ] .checkout-form
168
+ - [ ] .checkout-summary
169
+ - [ ] .payment-options
170
+ - [ ] .confirmation-message
171
+
172
+ Mapeamento HTML → Blazor:
173
+ - form.checkout-form → EditForm + FluentTextField
174
+ - div.payment-card → FluentCard
175
+ - button.btn-pay → FluentButton Accent
176
+
177
+ ---
178
+
179
+ ⛔ **PAUSA OBRIGATORIA**
180
+
181
+ **Proximos passos:**
182
+ 1. ✅ Aprovar e gerar tasks de implementacao
183
+ 2. 🔄 Ajustar mapeamento
184
+ 3. 📋 Ver mais detalhes dos componentes
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Quando Usar
190
+
191
+ - ✅ Prototipo HTML pronto (Figma export, hand-coded, etc.)
192
+ - ✅ Design ja aprovado pelo cliente
193
+ - ✅ Apenas conversao visual (sem logica de negocio nova)
194
+ - ✅ Codigo Blazor existente para atualizar
195
+
196
+ ## Quando NAO Usar
197
+
198
+ - ❌ Feature nova com logica complexa (use FULL MORPH)
199
+ - ❌ Infraestrutura Azure necessaria (use FULL MORPH)
200
+ - ❌ Sem prototipo definido (use STANDARD ou FULL MORPH)
201
+
202
+ ---
203
+
204
+ ## Referencias
205
+
206
+ - [HTML to Blazor Guide](../../../../framework/standards/html-to-blazor.md)
207
+ - [CSS Naming Convention](../../../../framework/standards/css-naming.md)
208
+ - [CSS Animations](../../../../framework/standards/css-animations.md)
209
+ - [Fluent UI Blazor](../../../../framework/standards/fluent-ui-blazor.md)
210
+
211
+ ---
212
+
213
+ *MORPH-SPEC v2.2.0 by Polymorphism Tech*
@@ -1,12 +1,8 @@
1
1
  # MORPH Clarify - FASE 3
2
2
 
3
- Identifique ambiguidades na especificação e faça perguntas de clarificação para garantir que todos os edge cases estão cobertos.
4
-
5
- ## Uso
3
+ > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
6
4
 
7
- ```
8
- /morph-clarify {feature-name}
9
- ```
5
+ Identifique ambiguidades na especificação e faça perguntas de clarificação para garantir que todos os edge cases estão cobertos.
10
6
 
11
7
  ## Pré-requisitos
12
8
 
@@ -60,24 +56,6 @@ Com base na análise, gere **3-7 perguntas** focadas e específicas:
60
56
  **Impact:** {Como a resposta afeta a implementação}
61
57
  ```
62
58
 
63
- **Exemplo:**
64
-
65
- ```markdown
66
- ### Q1: Validação - Limite de Nome de Projeto
67
-
68
- **Context:** O spec menciona "nome de projeto" mas não especifica limites.
69
-
70
- **Question:** Qual o comprimento máximo do nome de projeto?
71
-
72
- **Options:**
73
- - A) 50 caracteres (padrão curto)
74
- - B) 100 caracteres (padrão médio)
75
- - C) 255 caracteres (padrão longo)
76
- - D) Sem limite (validar apenas se não vazio)
77
-
78
- **Impact:** Afeta validação do DTO, schema do banco, e UI (tamanho do input).
79
- ```
80
-
81
59
  ### Passo 3: Categorizar Perguntas
82
60
 
83
61
  Organize perguntas por categoria:
@@ -108,16 +86,9 @@ Após receber respostas do usuário, atualize o spec com:
108
86
  ### Q1: {Título}
109
87
  **Answer:** {Resposta do usuário}
110
88
  **Date:** {YYYY-MM-DD}
111
-
112
- ### Q2: {Título}
113
- **Answer:** {Resposta do usuário}
114
- **Date:** {YYYY-MM-DD}
115
89
  ```
116
90
 
117
- 2. **Atualizar seções relevantes** com detalhes adicionados:
118
- - Requisitos funcionais mais específicos
119
- - Validações documentadas
120
- - Edge cases cobertos
91
+ 2. **Atualizar seções relevantes** com detalhes adicionados
121
92
 
122
93
  ### Passo 6: Validar Edge Cases
123
94
 
@@ -130,19 +101,12 @@ Documente no spec como lidar com cada edge case identificado:
130
101
  **Scenario:** {Quando acontece}
131
102
  **Expected Behavior:** {Como o sistema deve reagir}
132
103
  **Implementation Notes:** {Dicas para implementação}
133
-
134
- **Example:**
135
- - Input: {exemplo de entrada problemática}
136
- - Output: {comportamento esperado}
137
104
  ```
138
105
 
139
106
  ### Passo 7: Atualizar State
140
107
 
141
108
  ```bash
142
- # Marcar fase como clarify
143
- node bin/state-manager.js set {feature-name} phase clarify
144
-
145
- # State permanece in_progress até usuário responder todas as perguntas
109
+ npx morph-spec state set {feature-name} phase clarify
146
110
  ```
147
111
 
148
112
  ## Outputs Gerados/Atualizados
@@ -152,23 +116,6 @@ node bin/state-manager.js set {feature-name} phase clarify
152
116
  - Edge cases documentados
153
117
  - Requisitos mais específicos
154
118
 
155
- ## ⛔ PAUSA OBRIGATÓRIA
156
-
157
- Apresente perguntas de clarificação e aguarde respostas do usuário.
158
-
159
- **Não prossiga até ter todas as respostas!**
160
-
161
- Após receber respostas, atualizar spec e apresentar:
162
-
163
- 1. ✅ **Aprovar clarificações e continuar para tasks**
164
- Prosseguir para `/morph-tasks` (FASE 4)
165
-
166
- 2. 🔄 **Fazer mais perguntas** (se ainda houver dúvidas)
167
- Iterar novamente nesta fase
168
-
169
- 3. 📋 **Revisar spec atualizado**
170
- Validar que clarificações foram bem incorporadas
171
-
172
119
  ## Critérios de Avanço
173
120
 
174
121
  - [x] Perguntas de clarificação identificadas (3-7)
@@ -181,4 +128,4 @@ Após receber respostas, atualizar spec e apresentar:
181
128
 
182
129
  ---
183
130
 
184
- **Feature:** $ARGUMENTS
131
+ Continuar automaticamente para FASE 4 (Tasks) após clarificações resolvidas.
@@ -1,12 +1,8 @@
1
1
  # MORPH Design - FASE 2
2
2
 
3
- Expanda a proposta em especificação técnica completa, contracts, decisões arquiteturais e estimativa de custos.
4
-
5
- ## Uso
3
+ > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
6
4
 
7
- ```
8
- /morph-design {feature-name}
9
- ```
5
+ Expanda a proposta em especificação técnica completa, contracts, decisões arquiteturais e estimativa de custos.
10
6
 
11
7
  ## Pré-requisitos
12
8
 
@@ -21,8 +17,7 @@ Expanda a proposta em especificação técnica completa, contracts, decisões ar
21
17
  Leia os arquivos existentes da feature:
22
18
 
23
19
  ```bash
24
- # Verificar outputs existentes
25
- node bin/state-manager.js get {feature-name}
20
+ npx morph-spec state get {feature-name}
26
21
  ```
27
22
 
28
23
  Leia:
@@ -140,19 +135,14 @@ Crie `.morph/project/outputs/{feature}/decisions.md` com ADRs relevantes:
140
135
  **Consequences:**
141
136
  **Pros:**
142
137
  - Pro 1
143
- - Pro 2
144
138
 
145
139
  **Cons:**
146
140
  - Con 1
147
- - Con 2
148
141
 
149
142
  **Alternatives Considered:**
150
143
  - Alternativa 1: {Por que foi rejeitada}
151
- - Alternativa 2: {Por que foi rejeitada}
152
144
 
153
145
  **Date:** {YYYY-MM-DD}
154
-
155
- ---
156
146
  ```
157
147
 
158
148
  **ADRs obrigatórios:**
@@ -163,77 +153,27 @@ Crie `.morph/project/outputs/{feature}/decisions.md` com ADRs relevantes:
163
153
 
164
154
  ### Passo 5: Estimar Custos
165
155
 
166
- Se houver recursos Azure na spec (arquivos Bicep):
167
-
168
- ```bash
169
- # Calcular custos automaticamente
170
- node bin/calculate-costs.js .morph/project/outputs/{feature}/infra/*.bicep --verbose
171
- ```
172
-
173
- O cost calculator:
174
- - Parseia arquivos Bicep e extrai recursos + SKUs
175
- - Calcula custo mensal baseado em pricing table do Azure
176
- - Valida contra limites configurados em `.morph/config/config.json`
177
- - Exit code 1 se exceder o limite `requiresADR` (padrão: $10)
156
+ Se houver recursos Azure na spec:
178
157
 
179
158
  **Limites configuráveis** (em config.json):
180
159
  - `costs.limits.freeTierOnly`: $0 (apenas free tier)
181
160
  - `costs.limits.withApproval`: $10 (requer confirmação do usuário)
182
161
  - `costs.limits.requiresADR`: $10 (requer ADR documentado)
183
162
 
184
- **Exemplo de output:**
185
- ```
186
- ╔════════════════════════════════════════════════╗
187
- ║ MORPH-SPEC COST CALCULATOR ║
188
- ╠════════════════════════════════════════════════╣
189
- ║ sqlDatabase (Basic) $4.99/mo ║
190
- ║ containerApp (Consumption) $0.00/mo ║
191
- ║ appInsights (Free) $0.00/mo ║
192
- ╠════════════════════════════════════════════════╣
193
- ║ Total Monthly Cost: $4.99 ║
194
- ║ Requires Approval: YES ║
195
- ║ Requires ADR: NO ║
196
- ╚════════════════════════════════════════════════╝
197
- ```
198
-
199
- **Documente custos em `decisions.md`:**
200
-
201
- ```markdown
202
- ## ADR-XXX: Infrastructure Costs
203
-
204
- **Estimated Monthly Cost:** $X.XX
205
-
206
- **Breakdown:**
207
- - Azure SQL Basic: $5.00
208
- - Container App (scale-to-zero): $0.00
209
- - Storage LRS (1GB): $0.02
210
- - App Insights Free: $0.00
211
-
212
- **Total:** $5.02/month
213
-
214
- **Approval Required:** {Yes/No - based on $10 threshold}
215
-
216
- **Justification:**
217
- {Se > $10, justificar aqui}
218
- ```
219
-
220
- 4. Atualizar state com custo:
163
+ Documente custos em `decisions.md` e atualize state:
221
164
 
222
165
  ```bash
223
- node bin/state-manager.js set {feature-name} costs.estimated {X.XX}
224
- node bin/state-manager.js set {feature-name} costs.approved {true/false}
166
+ npx morph-spec state set {feature-name} costs.estimated {X.XX}
167
+ npx morph-spec state set {feature-name} costs.approved {true/false}
225
168
  ```
226
169
 
227
170
  ### Passo 6: Atualizar State
228
171
 
229
172
  ```bash
230
- # Marcar fase como design
231
- node bin/state-manager.js set {feature-name} phase design
232
-
233
- # Marcar outputs criados
234
- node bin/state-manager.js mark-output {feature-name} spec
235
- node bin/state-manager.js mark-output {feature-name} contracts
236
- node bin/state-manager.js mark-output {feature-name} decisions
173
+ npx morph-spec state set {feature-name} phase design
174
+ npx morph-spec state mark-output {feature-name} spec
175
+ npx morph-spec state mark-output {feature-name} contracts
176
+ npx morph-spec state mark-output {feature-name} decisions
237
177
  ```
238
178
 
239
179
  ## Outputs Gerados
@@ -243,23 +183,13 @@ node bin/state-manager.js mark-output {feature-name} decisions
243
183
  - `.morph/project/outputs/{feature}/decisions.md` - ADRs (novo ou atualizado)
244
184
  - State atualizado com custos estimados
245
185
 
246
- ## PAUSA OBRIGATÓRIA
186
+ ## PAUSA OBRIGATÓRIA
247
187
 
248
188
  Apresente ao usuário 3 ações sugeridas:
249
189
 
250
- 1. **Aprovar design e continuar para clarificação**
251
- Prosseguir para `/morph-clarify` (FASE 3)
252
-
253
- 2. 🔄 **Ajustar escopo/complexidade**
254
- Revisar spec.md para reduzir ou expandir funcionalidades
255
-
256
- 3. 💰 **Revisar custos estimados** (se houver recursos Azure)
257
- Ajustar SKUs ou recursos para ficar dentro do budget
258
-
259
- 4. 📋 **Modificar contracts**
260
- Ajustar interfaces/DTOs se necessário
261
-
262
- **Formato:** Escolher 3 das opções acima, contextualizadas para a feature
190
+ 1. **Aprovar design e continuar para clarificação**
191
+ 2. **Ajustar escopo/complexidade** - Revisar spec.md
192
+ 3. **Modificar contracts** - Ajustar interfaces/DTOs
263
193
 
264
194
  ## Critérios de Avanço
265
195
 
@@ -272,4 +202,4 @@ Apresente ao usuário 3 ações sugeridas:
272
202
 
273
203
  ---
274
204
 
275
- **Feature:** $ARGUMENTS
205
+ Continuar automaticamente para FASE 3 (Clarify) após aprovação.
@@ -1,12 +1,8 @@
1
1
  # MORPH Setup - FASE 1
2
2
 
3
- Inicialize o contexto e prepare o ambiente para uma feature aprovada.
4
-
5
- ## Uso
3
+ > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
6
4
 
7
- ```
8
- /morph-setup {feature-name}
9
- ```
5
+ Inicialize o contexto e prepare o ambiente para uma feature aprovada.
10
6
 
11
7
  ## Pré-requisitos
12
8
 
@@ -21,10 +17,10 @@ Inicialize o contexto e prepare o ambiente para uma feature aprovada.
21
17
  Confirme que a feature existe no state:
22
18
 
23
19
  ```bash
24
- node bin/state-manager.js get {feature-name}
20
+ npx morph-spec state get {feature-name}
25
21
  ```
26
22
 
27
- Se não existir, volte para `/morph-proposal`.
23
+ Se não existir, volte para FASE 0 (proposal).
28
24
 
29
25
  ### Passo 2: Carregar Contexto do Projeto
30
26
 
@@ -47,7 +43,7 @@ Leia os seguintes arquivos para entender o projeto:
47
43
  ### Passo 3: Confirmar Stack
48
44
 
49
45
  Baseado no proposal e contexto, confirme:
50
- - Stack tecnológica (Blazor Server, Next.js, Shopify, etc.)
46
+ - Stack tecnológica (Blazor Server, Next.js, etc.)
51
47
  - Padrões arquiteturais aplicáveis
52
48
  - Componentes reutilizáveis existentes
53
49
 
@@ -56,7 +52,7 @@ Baseado no proposal e contexto, confirme:
56
52
  Mostre os agentes detectados no proposal:
57
53
 
58
54
  ```bash
59
- node bin/state-manager.js get {feature-name}
55
+ npx morph-spec state get {feature-name}
60
56
  ```
61
57
 
62
58
  Parse o JSON e liste os `activeAgents` com seus emojis e responsabilidades (consulte `.morph/config/agents.json`).
@@ -66,8 +62,8 @@ Parse o JSON e liste os `activeAgents` com seus emojis e responsabilidades (cons
66
62
  Marque a feature como na fase SETUP:
67
63
 
68
64
  ```bash
69
- node bin/state-manager.js set {feature-name} phase setup
70
- node bin/state-manager.js set {feature-name} status in_progress
65
+ npx morph-spec state set {feature-name} phase setup
66
+ npx morph-spec state set {feature-name} status in_progress
71
67
  ```
72
68
 
73
69
  ## Outputs
@@ -83,10 +79,6 @@ node bin/state-manager.js set {feature-name} status in_progress
83
79
  - Lista de agentes com emojis
84
80
  - Responsabilidades de cada um
85
81
 
86
- 3. **Próximos passos**:
87
- - Se feature tem UI/UX keywords → `/morph-uiux` (FASE 1.5)
88
- - Se NÃO tem UI/UX → `/morph-design` (FASE 2)
89
-
90
82
  ## Critérios de Avanço
91
83
 
92
84
  - [x] Contexto do projeto carregado
@@ -97,4 +89,4 @@ node bin/state-manager.js set {feature-name} status in_progress
97
89
 
98
90
  ---
99
91
 
100
- **Feature:** $ARGUMENTS
92
+ Continuar automaticamente para próxima fase (UI/UX se detectado, ou Design).