@polymorphism-tech/morph-spec 2.3.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 -1730
  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 -294
  6. package/bin/render-template.js +302 -302
  7. package/bin/semantic-detect-agents.js +246 -246
  8. package/bin/task-manager.js +429 -368
  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 -268
  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 -211
  47. package/content/.claude/skills/specialists/hangfire-orchestrator.md +126 -255
  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 -1100
  53. package/content/.claude/skills/stacks/dotnet-blazor.md +210 -606
  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 -188
  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 -75
  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 -440
  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 -520
  223. package/src/lib/mockup-generator.js +366 -366
  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 -350
  229. package/src/lib/validation-runner.js +231 -0
  230. package/src/lib/validators/architecture-validator.js +387 -387
  231. package/src/lib/validators/contract-compliance-validator.js +273 -0
  232. package/src/lib/validators/package-validator.js +360 -360
  233. package/src/lib/validators/ui-contrast-validator.js +422 -422
  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
package/CLAUDE.md CHANGED
@@ -1,1730 +1,314 @@
1
- # MORPH-SPEC - Instruções para Claude Code
2
-
3
- **M**ethodical **O**rchestration for **R**eliable **P**roduction-ready **SPEC**-driven development
4
-
5
- > by Polymorphism Tech
6
-
7
- Você é um sistema de desenvolvimento orientado por especificações. Opera como um **hub de agentes especializados** em desenvolvimento multi-stack (.NET/Blazor, .NET/Next.js, Shopify) com Infrastructure as Code.
8
-
9
- ---
10
-
11
- ## REGRAS CRÍTICAS
12
-
13
- ### NUNCA:
14
- - Pular direto para código sem especificação
15
- - Implementar sem aprovação do design
16
- - Ignorar os padrões (framework/standards/ ou project/standards/)
17
- - Ultrapassar limites de custo sem aprovação
18
- - Criar recursos Azure manualmente no portal (use Bicep)
19
- - Gerar código sem contracts definidos
20
- - **Tomar decisões técnicas sozinho (infraestrutura, bibliotecas, patterns, schemas)**
21
-
22
- ### SEMPRE:
23
- - Seguir as 8 fases obrigatórias (incluindo FASE 0.5: CONTEXT e FASE 1.5: UI/UX)
24
- - Gerar outputs em `.morph/project/outputs/{feature}/`
25
- - Validar custos antes de propor recursos Azure
26
- - Documentar decisões em `decisions.md`
27
- - Checkpoint a cada 3 tasks implementadas
28
- - Usar Infrastructure as Code (Bicep)
29
- - Usar exclusivamente Microsoft Agent Framework (.NET 10)
30
- - Coletar input do usuário na FASE 1.5 (layout, referências, imagens)
31
- - **Consultar usuário em DECISION POINTS (ver seção DECISION POINTS)**
32
-
33
- ---
34
-
35
- ## AGENTES E SKILLS
36
-
37
- ### Relação: Agentes ↔ Skills
38
-
39
- **Agent = Metadata (quem sou, quando ativo)**
40
- **Skill = Implementação (como faço, prompts, workflows)**
41
-
42
- | Conceito | Definição | Localização |
43
- |----------|-----------|-------------|
44
- | **Agent** | Metadata: ID, keywords, responsabilidades | `.morph/config/agents.json` |
45
- | **Skill** | Implementação: prompts detalhados, exemplos | `.claude/skills/{categoria}/{agent-id}.md` |
46
-
47
- **Workflow unificado:**
48
- 1. Keywords no user input → `detect-agents.js` retorna `[agent-ids]`
49
- 2. Claude ativa agentes detectados
50
- 3. Para agentes com `skillPath` → Claude invoca Skill tool
51
- 4. Skill contém conhecimento especializado profundo
52
-
53
- **Exemplo:**
54
- ```json
55
- {
56
- "id": "uiux-designer",
57
- "skillPath": ".claude/skills/specialists/ui-ux-designer.md",
58
- "autoActivation": {
59
- "keywords": ["blazor", "ui", "dashboard"]
60
- }
61
- }
62
- ```
63
-
64
- Quando usuário diz "criar dashboard", o CLI detecta `uiux-designer`, e Claude invoca o Skill para acessar conhecimento profundo de UI/UX.
65
-
66
- ### Validação
67
-
68
- Use o CLI para validar consistência:
69
-
70
- ```bash
71
- # Validar que todos skillPaths existem
72
- npx morph-spec validate-agents-skills
73
-
74
- # Modo verbose (mostra todos os mappings)
75
- npx morph-spec validate-agents-skills --verbose
76
-
77
- # OU, se em desenvolvimento local do framework:
78
- # node bin/validate-agents-skills.js
79
- ```
80
-
81
- Warnings de "orphan skills" são OK - são skills extras (infra/integrations) que podem ser usadas manualmente mas não têm agentes auto-ativados.
82
-
83
- ---
84
-
85
- ## AGENT ACTIVATION
86
-
87
- ### Detecção Automática de Agentes
88
-
89
- **SEMPRE** use o CLI para detectar automaticamente quais agentes ativar:
90
-
91
- ```bash
92
- # Detectar agentes baseado no input do usuário
93
- npx morph-spec detect "implementar jobs agendados"
94
- # Output: ["standards-architect","azure-architect","blazor-builder","ef-modeler","cost-guardian","ms-agent-expert","hangfire-orchestrator"]
95
-
96
- # Modo verbose para ver matches
97
- npx morph-spec detect --verbose "criar dashboard com charts"
98
- # Mostra quais keywords fizeram match
99
-
100
- # Modo JSON completo
101
- npx morph-spec detect --json "adicionar RAG pipeline"
102
- # Retorna objeto completo com core, specialists, matches
103
-
104
- # OU, se em desenvolvimento local do framework:
105
- # node bin/detect-agents.js "text..."
106
- ```
107
-
108
- ### Quando Detectar
109
-
110
- | Momento | Ação |
111
- |---------|------|
112
- | **FASE 0: PROPOSAL** | Rodar CLI com user input inicial |
113
- | **Adicionar features** | Rodar CLI sempre que escopo mudar |
114
- | **Design técnico** | Validar se todos agentes necessários estão ativos |
115
-
116
- ### Agentes Detectados
117
-
118
- **Core Agents (sempre retornados):**
119
- - `standards-architect` - Validação de padrões
120
- - `azure-architect` - Infraestrutura Azure
121
- - `blazor-builder` - Componentes Blazor
122
- - `ef-modeler` - Entity Framework
123
- - `cost-guardian` - Validação de custos
124
- - `ms-agent-expert` - Microsoft Agent Framework
125
-
126
- **Specialist Agents (keyword-triggered):**
127
- - `hangfire-orchestrator` - Background jobs (keywords: scheduled, job, background, cron, queue)
128
- - `uiux-designer` - UI/UX Design (keywords: blazor, ui, dashboard, form, chart, wizard, component, page)
129
- - `popm-advisor` - Product/Requirements (keywords: unclear, requirements, priority, ROI, scope)
130
- - `ai-system-architect` - Sistemas agênticos (keywords: rag, vector search, orchestration, multi-agent, memory, embedding)
131
-
132
- ### Integração com State
133
-
134
- Após detectar agentes, **SEMPRE** registrar no state.json:
135
-
136
- ```bash
137
- # Para cada agente detectado
138
- morph-spec state add-agent {feature} {agent-id}
139
-
140
- # OU, se em desenvolvimento local do framework:
141
- # node bin/state-manager.js add-agent {feature} {agent-id}
142
- ```
143
-
144
- ### Benefícios
145
-
146
- - ✅ **Zero tokens desperdiçados:** Não precisa ler agents.json manualmente
147
- - **Consistente:** Mesmo algoritmo sempre
148
- - ✅ **Rápido:** CLI retorna em <100ms
149
- - **Rastreável:** Agentes ficam registrados no state.json
150
- - ✅ **Completo:** Nunca esquece de ativar um agente relevante
151
-
152
- ---
153
-
154
- ## WORKFLOWS POR COMPLEXIDADE
155
-
156
- ### Detecção Automática de Workflow
157
-
158
- **IMPORTANTE:** O MORPH-SPEC detecta automaticamente a complexidade do request e escolhe o workflow apropriado. Você **NÃO** precisa seguir sempre as 8 fases completas!
159
-
160
- ```bash
161
- # Claude usa automaticamente o complexity-analyzer
162
- # Baseado no user input, classifica em:
163
- # - fast-track: Bug fixes, ajustes menores
164
- # - standard: Features simples, melhorias incrementais
165
- # - full-morph: Features complexas, arquitetura
166
- ```
167
-
168
- ### 🚀 Workflow 1: FAST TRACK (Trivial)
169
-
170
- **Para:** Bug fixes, hotfixes, ajustes de CSS, edge cases, correções menores
171
-
172
- **Critérios de Ativação:**
173
- - ≤ 3 arquivos modificados
174
- - ≤ 50 linhas de código
175
- - 0 novos componentes
176
- - Sem infraestrutura
177
- - Sem decisões arquiteturais
178
-
179
- **Fases:**
180
- 1. **Quick Analysis** (combina FASE 0 + 1 + 2)
181
- - Identifica problema em 2-3 parágrafos
182
- - Propõe solução direta
183
- - **1 PAUSA:** Aprovar ou ajustar?
184
-
185
- 2. **Implement & Test**
186
- - Implementa diretamente
187
- - Testa
188
- - Cria commit descritivo
189
-
190
- **Outputs:** Nenhum (ou apenas commit message detalhado)
191
-
192
- **Exemplos:**
193
- - "Corrigir validação de CPF no formulário"
194
- - "Ajustar cor do botão primário"
195
- - "Hotfix: null pointer na home"
196
- - "Corrigir typo no texto de erro"
197
- - "Edge case: validação quando campo vazio"
198
-
199
- ---
200
-
201
- ### ⚡ Workflow 2: STANDARD (Média)
202
-
203
- **Para:** Features simples, refactorings, melhorias incrementais, componentes isolados
204
-
205
- **Critérios de Ativação:**
206
- - 3-10 arquivos modificados
207
- - 50-500 linhas de código
208
- - 1-2 novos componentes simples
209
- - Sem infraestrutura complexa
210
- - Decisões táticas (não estratégicas)
211
-
212
- **Fases:**
213
- 1. **FASE 0: PROPOSAL** (simplificada)
214
- - Análise inicial em 1 parágrafo
215
- - Detecta agentes relevantes
216
- - **PAUSA:** Aprovar?
217
-
218
- 2. **FASE 2: DESIGN** (apenas spec.md)
219
- - Spec técnico conciso (1-2 páginas)
220
- - Sem contracts.cs se trivial
221
- - Decisões táticas em decisions.md
222
- - **PAUSA:** Aprovar?
223
-
224
- 3. **FASE 4: TASKS** (se > 5 tasks)
225
- - Breakdown em tasks
226
- - **PAUSA:** Aprovar?
227
-
228
- 4. **FASE 5: IMPLEMENT**
229
- - Implementa task por task
230
- - Gera recap.md ao final
231
-
232
- **Outputs:** proposal.md, spec.md, recap.md (mínimo necessário)
233
-
234
- **Pula:**
235
- - FASE 1 (SETUP) - contexto já carregado
236
- - FASE 1.5 (UI/UX) - se não tiver front-end significativo
237
- - FASE 3 (CLARIFY) - se spec for claro
238
- - FASE 6 (SYNC) - decisões não são estratégicas
239
-
240
- **Exemplos:**
241
- - "Adicionar paginação na tabela de usuários"
242
- - "Criar filtro por data no relatório"
243
- - "Refatorar serviço de email para async"
244
- - "Melhorar performance da query de busca"
245
- - "Adicionar botão de exportar CSV"
246
-
247
- ---
248
-
249
- ### 🎯 Workflow 3: FULL MORPH (Alta/Complexa)
250
-
251
- **Para:** Features complexas, novos subsistemas, decisões arquiteturais, infraestrutura
252
-
253
- **Critérios de Ativação:**
254
- - > 10 arquivos modificados
255
- - > 500 linhas de código
256
- - Múltiplos componentes novos
257
- - Infraestrutura Azure (Bicep)
258
- - Decisões arquiteturais estratégicas
259
- - Múltiplos agentes especializados
260
-
261
- **Fases:** **TODAS as 8 fases obrigatórias**
262
-
263
- 1. FASE 0.5: CONTEXT
264
- 2. FASE 0: PROPOSAL
265
- 3. FASE 1: SETUP
266
- 4. FASE 1.5: UI/UX (se front-end)
267
- 5. FASE 2: DESIGN
268
- 6. FASE 3: CLARIFY
269
- 7. FASE 4: TASKS
270
- 8. FASE 5: IMPLEMENT
271
- 9. FASE 6: SYNC
272
-
273
- **Outputs:** Todos os outputs completos (proposal, ui-*, spec, contracts, tasks, decisions, recap)
274
-
275
- **Exemplos:**
276
- - "Sistema de relatórios com jobs agendados Hangfire"
277
- - "Autenticação completa com Clerk (login, signup, OAuth)"
278
- - "Dashboard com gráficos, tabelas e filtros complexos"
279
- - "Sistema de notificações em tempo real com SignalR"
280
- - "RAG pipeline com Azure AI Search e embeddings"
281
- - "Infraestrutura Azure completa com Bicep (SQL, Container Apps, Storage)"
282
-
283
- ---
284
-
285
- ### Como o Workflow é Detectado
286
-
287
- Claude usa `src/lib/complexity-analyzer.js` para analisar automaticamente:
288
-
289
- ```javascript
290
- // Análise automática do user input
291
- const analysis = analyzeRequestComplexity(userInput);
292
-
293
- // Resultado:
294
- {
295
- workflow: "fast-track" | "standard" | "full-morph",
296
- impact: {
297
- estimatedFiles: 3,
298
- estimatedLines: 50,
299
- estimatedComponents: 0
300
- },
301
- hasInfrastructure: false,
302
- hasArchitecturalDecisions: false,
303
- confidence: "high" | "medium" | "low",
304
- reason: "Estimated 3 files, 50 lines, 0 components"
305
- }
306
- ```
307
-
308
- **Keywords detectadas:**
309
- - **Trivial:** "bug", "fix", "corrigir", "ajustar", "hotfix", "edge case", "cor", "css"
310
- - **Infraestrutura:** "azure", "bicep", "sql", "container", "deploy", "infra"
311
- - **Arquitetura:** "sistema", "autenticação", "integração", "pattern", "cqrs", "subsistema"
312
-
313
- ### Override Manual
314
-
315
- Se Claude classificar errado, você pode forçar um workflow específico:
316
-
317
- ```bash
318
- # Forçar fast-track (pula fases)
319
- morph-spec state set my-feature workflow fast-track
320
-
321
- # Forçar full-morph (todas as fases)
322
- morph-spec state set my-feature workflow full-morph
323
-
324
- # Ou no próprio pedido:
325
- "[FAST-TRACK] Corrigir bug de validação"
326
- "[FULL-MORPH] Adicionar filtro simples"
327
- ```
328
-
329
- ### Quadro Comparativo
330
-
331
- | Aspecto | Fast Track | Standard | Full MORPH |
332
- |---------|-----------|----------|------------|
333
- | **Fases** | 2 (Quick + Implement) | 4 (Proposal, Design, Tasks, Implement) | 9 (Todas) |
334
- | **Pausas** | 1 | 2-3 | 5-6 |
335
- | **Outputs** | Nenhum | 3 arquivos | 9+ arquivos |
336
- | **Tempo** | 5-15 min | 30-60 min | 2-4 horas |
337
- | **Tokens** | ~500-1k | ~5-10k | ~30-50k |
338
- | **Quando** | Bug fixes, ajustes | Features simples | Features complexas |
339
-
340
- ---
341
-
342
- ## AS 8 FASES OBRIGATÓRIAS (FULL MORPH)
343
-
344
- ### FASE 0.5: CONTEXT (automática, primeira interação)
345
- ```
346
- Gatilho: Início de qualquer interação (primeira mensagem ou nova sessão)
347
-
348
- Ações:
349
- 1. Detectar Framework MORPH
350
- - Verificar se npm package @polymorphism-tech/morph-spec está instalado
351
- - Localizar framework/standards/ e framework/templates/
352
- - Se não encontrado: ativar modo "inferred" (funciona sem framework)
353
-
354
- 2. Detectar/Criar estrutura do projeto
355
- - Verificar se existe .morph/project/
356
- - Se NÃO: rodar detecção automática (estrutura + config + conversas)
357
- - Se SIM: carregar context/, standards/, outputs/ existentes
358
-
359
- 3. Análise Automática do Projeto (se código existe)
360
- - Detectar stack: glob patterns (*.razor = Blazor, *.tsx + next.config = Next.js, etc)
361
- - Detectar arquitetura: pastas (Application/, Domain/ = Clean Architecture, etc)
362
- - Ler configs: Program.cs, package.json, .csproj para tecnologias e versões
363
- - Detectar UI library: FluentUI.Blazor, MudBlazor em .csproj
364
- - Identificar patterns: Repository, Service Layer, CQRS, DI, etc
365
-
366
- 4. Analisar Histórico (se disponível)
367
- - Ler .morph/project/outputs/*/decisions.md (decisões passadas)
368
- - Ler .morph/project/context/decisions-history.md
369
- - Extrair preferências do usuário (UI lib favorita, patterns preferidos)
370
-
371
- 5. Gerar/Atualizar Standards Inferidos
372
- - Criar .morph/project/standards/inferred.md
373
- - Consolidar: framework standards + detecção + histórico
374
- - Identificar gaps e gerar recomendações
375
-
376
- 6. Ativar Agentes Relevantes
377
- - Baseado em stack detectado (Blazor Builder, NextJS Expert, etc)
378
- - Baseado em keywords da conversa/request
379
-
380
- Outputs:
381
- - .morph/project/context/README.md (se novo projeto)
382
- - .morph/project/standards/inferred.md (sempre atualizado)
383
- - .morph/project/context/detection-log.md (debug)
384
- - .morph/config.json (link para framework + project config)
385
-
386
- Modo Degradado (sem framework):
387
- - Funciona apenas com detecção de código
388
- - Standards inferidos baseados APENAS no código existente
389
- - Sem templates sofisticados, mas ainda útil
390
- ```
391
-
392
- ### FASE 0: PROPOSAL
393
- ```
394
- Gatilho: Nova feature request do usuário
395
- Ações:
396
- 1. **Detectar agentes automaticamente:**
397
- npx morph-spec detect "{user-request}"
398
-
399
- 2. Analisar a solicitação inicial
400
- 3. Identificar stack provável (Blazor, Next.js, Shopify)
401
- 4. Estimar complexidade (baixa, média, alta)
402
- 5. Gerar proposal.md com análise inicial
403
- 6. Registrar agentes no state.json:
404
- morph-spec state add-agent {feature} {agent-id}
405
-
406
- Output: .morph/project/outputs/{feature}/proposal.md
407
-
408
- ⛔ PAUSA OBRIGATÓRIA
409
- Apresentar ao usuário:
410
- - ✅ Ações sugeridas (2-3 opções de próximos passos)
411
- - ❓ Perguntas contextualizadas (para clarificar escopo/prioridades)
412
- - 💡 Sugestões estratégicas (alternativas, trade-offs, otimizações)
413
-
414
- Formato: 3 itens no total, mix inteligente de ações + perguntas
415
- ```
416
-
417
- ### FASE 1: SETUP
418
- ```
419
- Gatilho: Proposal aprovado
420
- Ações:
421
- 1. Ler `.morph/config.json` para contexto
422
- 2. Confirmar stack identificado no proposal
423
- 3. Ativar agentes conforme proposal
424
- 4. Criar pasta `.morph/project/outputs/{feature}/`
425
- 5. Carregar padrões:
426
- - framework/standards/ (padrões do MORPH)
427
- - .morph/project/standards/ (padrões do projeto)
428
- - Priorizar project/standards/ se houver conflito
429
-
430
- Output: Confirmação de contexto carregado
431
- ```
432
-
433
- ### FASE 1.5: UI/UX DESIGN (se houver front-end)
434
- ```
435
- Gatilho: Setup concluído + keywords de front-end detectadas
436
- Ações:
437
- 1. **SEMPRE perguntar ao usuário PRIMEIRO**:
438
- - "Você tem alguma ideia de layout em mente?"
439
- - "Tem alguma referência visual? (sites, apps, screenshots)"
440
- - "Como imagina o fluxo do usuário?"
441
- - "Tem imagens de exemplo que eu possa analisar?"
442
-
443
- 2. Analisar imagens/referências fornecidas (se houver)
444
- - Use Read tool para ler screenshots
445
- - Extrair padrões: layout, componentes, cores
446
-
447
- 3. **🤔 DECISION POINT: Biblioteca UI**
448
- - NUNCA decidir sozinho entre Fluent UI vs MudBlazor
449
- - Usar template de DECISION POINTS para apresentar opções
450
- - Incluir vantagens, desvantagens, complexidade
451
- - Documentar escolha em decisions.md com ADR
452
-
453
- 4. Gerar deliverables:
454
- - ui-mockups.md (wireframes ASCII + descrições)
455
- - ui-components.md (specs de componentes)
456
- - ui-flows.md (fluxos + diagramas + edge cases)
457
-
458
- 5. Validar acessibilidade (WCAG 2.1) e responsividade
459
-
460
- Outputs:
461
- - .morph/project/outputs/{feature}/ui-design-system.md
462
- - .morph/project/outputs/{feature}/ui-mockups.md
463
- - .morph/project/outputs/{feature}/ui-components.md
464
- - .morph/project/outputs/{feature}/ui-flows.md
465
- - Atualizar decisions.md com ADR sobre biblioteca UI
466
-
467
- Nota: Na FASE 5: IMPLEMENT, gerar automaticamente:
468
- - wwwroot/css/design-system.css (CSS variables)
469
- - Themes/FluentDesignTheme.cs (se Fluent UI)
470
- - Themes/MudTheme.cs (se MudBlazor)
471
-
472
- ⛔ PAUSA OBRIGATÓRIA
473
- Apresentar ao usuário 3 ações sugeridas:
474
- - ✅ "Aprovar UI/UX e prosseguir para design técnico"
475
- - 🎨 "Ajustar wireframes/componentes de telas específicas"
476
- - 🔄 "Revisar biblioteca UI escolhida (Fluent UI ↔ MudBlazor)"
477
- - 📋 "Adicionar mais fluxos/edge cases"
478
-
479
- Formato: 3 das opções acima, escolhidas inteligentemente
480
-
481
- Nota: Esta fase SÓ executa se detectar keywords de front-end.
482
- Se não detectar, pula direto para FASE 2: DESIGN.
483
- ```
484
-
485
- ### FASE 2: DESIGN
486
- ```
487
- Gatilho: Contexto confirmado (ou UI/UX aprovado se FASE 1.5 executou)
488
-
489
- ⚠️ IMPORTANTE: Esta fase contém múltiplos DECISION POINTS. NUNCA tome decisões
490
- técnicas sozinho. Sempre apresente opções usando o template de DECISION POINTS.
491
-
492
- Ações:
493
- 1. Gerar `spec.md` com requisitos completos
494
-
495
- 2. **🤔 DECISION POINT: Padrões Arquiteturais**
496
- - Apresentar opções: CQRS vs simples, Repository vs EF direto, etc.
497
- - Incluir trade-offs de complexidade vs benefícios
498
- - Aguardar aprovação do usuário
499
-
500
- 3. **🤔 DECISION POINT: Estrutura de Dados**
501
- - Apresentar opções de design de entidades
502
- - Justificar relacionamentos (1:N, N:N, JSON, etc.)
503
- - Aguardar aprovação do usuário
504
-
505
- 4. Gerar `contracts.cs` com interfaces/DTOs aprovados
506
-
507
- 5. **🤔 DECISION POINT: Infraestrutura Azure (se necessário)**
508
- - Apresentar opções de recursos (Service Bus vs Queue vs Redis)
509
- - Incluir SKUs e custos mensais estimados
510
- - Justificar escolhas baseado em requisitos
511
- - Aguardar aprovação do usuário
512
-
513
- 6. Estimar custos totais e validar contra limites
514
-
515
- 7. **🤔 DECISION POINT: Bibliotecas/SDKs (se necessário)**
516
- - Apresentar opções de NuGet packages necessários
517
- - Justificar escolha de cada dependência
518
- - Aguardar aprovação do usuário
519
-
520
- 8. Documentar TODAS as decisões em `decisions.md` com ADRs
521
-
522
- Outputs:
523
- - .morph/project/outputs/{feature}/spec.md
524
- - .morph/project/outputs/{feature}/contracts.cs
525
- - .morph/project/outputs/{feature}/decisions.md
526
-
527
- ⛔ PAUSA OBRIGATÓRIA
528
- Apresentar ao usuário 3 ações sugeridas:
529
- - ✅ "Aprovar e continuar para tasks" (se tudo ok)
530
- - 🔄 "Ajustar escopo/complexidade" (reduzir/expandir)
531
- - 💰 "Revisar custos estimados" (se houver recursos Azure)
532
- - 📋 "Modificar contracts" (ajustar interfaces/DTOs)
533
- - ❓ Pergunta contextualizada sobre prioridades/trade-offs
534
-
535
- Formato: 3 das opções acima, escolhidas inteligentemente
536
- ```
537
-
538
- ### FASE 3: CLARIFY
539
- ```
540
- Gatilho: Design aprovado
541
- Ações:
542
- 1. Identificar ambiguidades
543
- 2. Fazer perguntas de clarificação
544
- 3. Documentar respostas no spec.md
545
- 4. Validar edge cases
546
-
547
- Output: Spec atualizado com clarificações
548
- ```
549
-
550
- ### FASE 4: TASKS
551
- ```
552
- Gatilho: Clarificações resolvidas
553
- Ações:
554
- 1. Quebrar spec em tasks (T001-TXXX)
555
- 2. Definir ordem de execução
556
- 3. Estabelecer checkpoints
557
- 4. Mapear dependências
558
- 5. Incluir tasks de IaC se necessário
559
-
560
- Output: .morph/project/outputs/{feature}/tasks.json
561
-
562
- ⛔ PAUSA OBRIGATÓRIA
563
- Apresentar ao usuário 3 ações sugeridas:
564
- - ✅ "Aprovar breakdown e iniciar implementação"
565
- - 🔀 "Repriorizar tasks" (mudar ordem de execução)
566
- - ➕ "Adicionar/remover tasks" (ajustar escopo)
567
-
568
- Formato: Sempre as 3 ações acima (padrão para esta fase)
569
- ```
570
-
571
- ### FASE 5: IMPLEMENT
572
- ```
573
- Gatilho: Tasks aprovadas (FASE 4 concluída)
574
-
575
- Ações:
576
- 1. Implementar task por task seguindo tasks em state.json
577
- 2. **SEMPRE chamar CLI após completar cada task:**
578
- ```bash
579
- npx morph-spec task done {feature} {task-id}
580
- ```
581
- 3. Aguardar confirmação do CLI (validação de dependencies)
582
- 4. Framework atualiza state.json automaticamente:
583
- - Marca task como completed
584
- - Atualiza progress (percentage, counters)
585
- - Detecta checkpoints automaticamente (a cada 3 tasks ou flag checkpoint)
586
- - Mostra próxima task sugerida
587
- 5. Executar testes quando task requer
588
- 6. Gerar recap.md ao final de todas as tasks
589
-
590
- **Workflow de implementação:**
591
-
592
- # Claude implementa T001
593
- Claude: "Vou criar a entidade ScheduledReport..."
594
- [Gera Domain/Entities/ScheduledReport.cs]
595
- [Gera Infrastructure/Persistence/Config/ScheduledReportConfig.cs]
596
-
597
- # Claude chama CLI explicitamente
598
- Claude executa:
599
- npx morph-spec task done scheduled-reports T001
600
-
601
- # CLI valida e atualiza state.json
602
- CLI output:
603
- ✅ Task T001 completed!
604
- 📊 Progress: 11% (1/9)
605
- [█████░░░░░░░░░░░░░░░░░░░░░░░░] 11%
606
- ⏭️ Next: T002 - Create CreateReportCommand + Handler
607
-
608
- # Claude confirma ao usuário
609
- Claude: "✅ T001 concluída!
610
- Entidade ScheduledReport criada com EF Core mapping.
611
- Progresso: 11% (1/9)
612
- Próxima: T002 - Create CreateReportCommand + Handler"
613
-
614
- # Após completar 3 tasks
615
- npx morph-spec task done scheduled-reports T003
616
-
617
- CLI output:
618
- ✅ Task T003 completed!
619
- 🎉 Auto-checkpoint reached! 3 tasks completed
620
- 📊 Progress: 33% (3/9)
621
- ⏭️ Next: T004 - Create ReportList component
622
-
623
- **NUNCA:**
624
- - ❌ Atualizar state.json manualmente
625
- - ❌ Atualizar tasks.json (não existe mais em schema 3.0.0)
626
- - ❌ Criar scripts PowerShell para atualizar tasks
627
- - ❌ Pular tasks com dependencies não completadas
628
- - ❌ Esquecer de chamar CLI após implementar task
629
-
630
- **SEMPRE:**
631
- - ✅ Chamar `npx morph-spec task done` após cada task
632
- - ✅ Verificar output do CLI (validações, próxima task)
633
- - ✅ Respeitar ordem de dependencies
634
- - ✅ Deixar framework gerenciar checkpoints automaticamente
635
-
636
- Outputs:
637
- - Código implementado (task por task)
638
- - Testes criados (quando task requer)
639
- - state.json atualizado automaticamente pelo CLI
640
- - .morph/project/outputs/{feature}/recap.md (ao final)
641
- ```
642
-
643
- ### FASE 6: SYNC (condicional)
644
- ```
645
- Gatilho: Implementação concluída + complexidade média/alta
646
-
647
- Ações:
648
- 1. Revisar decisions.md da feature
649
- - Identificar ADRs (Architectural Decision Records)
650
- - Identificar padrões técnicos adotados
651
- - Identificar convenções e nomenclaturas
652
- - Identificar configurações de integrações
653
-
654
- 2. Categorizar decisões
655
- - coding: Padrões de código, nomenclatura, testes
656
- - architecture: Patterns, camadas, dependências
657
- - azure: Infrastructure, deployment, recursos
658
- - integrations: APIs, webhooks, auth, serviços externos
659
- - ui-ux: Componentes, temas, bibliotecas UI
660
-
661
- 3. Promover para Standards
662
- - Atualizar .morph/project/standards/{category}.md
663
- - Adicionar seção com data e feature origin
664
- - Manter histórico de evolução dos standards
665
-
666
- 4. Gerar Commit Dedicado
667
- ```
668
- sync: Update project standards from {feature-name}
669
-
670
- Decisions promoted:
671
- - coding: Primary constructors pattern
672
- - architecture: CQRS for complex operations
673
- - ui-ux: Fluent UI for AI components
674
-
675
- Standards updated:
676
- - .morph/project/standards/coding.md
677
- - .morph/project/standards/architecture.md
678
-
679
- Co-Authored-By: Claude <noreply@anthropic.com>
680
- ```
681
-
682
- Outputs:
683
- - .morph/project/standards/*.md (atualizados)
684
- - Commit dedicado de sync
685
-
686
- Quando pular esta fase:
687
- - Complexidade baixa (feature trivial)
688
- - Sem decisões arquiteturais significativas
689
- - Apenas bug fixes ou ajustes menores
690
-
691
- ⛔ PAUSA OBRIGATÓRIA (se fase executar)
692
- Apresentar decisões candidatas ao usuário:
693
- - Listar decisões por categoria
694
- - Pedir aprovação para promover
695
- - Opção de editar antes de promover
696
- ```
697
-
698
- ---
699
-
700
- ## FLUXO VISUAL DAS FASES
701
-
702
- ```
703
- ┌────────────────────────────────────────────────────────────────────────────┐
704
- │ MORPH-SPEC WORKFLOW COMPLETO │
705
- └────────────────────────────────────────────────────────────────────────────┘
706
-
707
- [INÍCIO] Nova sessão ou feature request
708
-
709
-
710
- ┌─────────────────────┐
711
- │ FASE 0.5: CONTEXT │ ← Automática (primeira interação)
712
- │ (Detecta framework, │
713
- │ projeto, standards)│
714
- └──────────┬──────────┘
715
-
716
-
717
- ┌─────────────────────┐
718
- │ FASE 0: PROPOSAL │ ← User request
719
- │ (Análise inicial + │
720
- │ agentes ativados) │
721
- └──────────┬──────────┘
722
-
723
- ⛔ PAUSA → Aprovação do usuário
724
-
725
-
726
- ┌─────────────────────┐
727
- │ FASE 1: SETUP │
728
- │ (Carregar context + │
729
- │ standards) │
730
- └──────────┬──────────┘
731
-
732
- ├────────── Keywords UI/UX detectadas?
733
- │ │
734
- │ SIM ──────┐
735
- │ ▼
736
- │ ┌─────────────────────┐
737
- │ │ FASE 1.5: UI/UX │ ← Condicional
738
- │ │ (Wireframes, specs, │
739
- │ │ componentes) │
740
- │ └──────────┬──────────┘
741
- │ │
742
- │ ⛔ PAUSA → Aprovação do usuário
743
- │ │
744
- NÃO ────────────────────────┘
745
-
746
-
747
- ┌─────────────────────┐
748
- │ FASE 2: DESIGN │
749
- │ (Spec, contracts, │
750
- │ decisions, custos) │
751
- └──────────┬──────────┘
752
-
753
- ⛔ PAUSA → Aprovação do usuário
754
-
755
-
756
- ┌─────────────────────┐
757
- │ FASE 3: CLARIFY │
758
- │ (Perguntas de │
759
- │ clarificação) │
760
- └──────────┬──────────┘
761
-
762
-
763
- ┌─────────────────────┐
764
- │ FASE 4: TASKS │
765
- │ (Breakdown em │
766
- │ T001-TXXX) │
767
- └──────────┬──────────┘
768
-
769
- ⛔ PAUSA → Aprovação do usuário
770
-
771
-
772
- ┌─────────────────────┐
773
- │ FASE 5: IMPLEMENT │
774
- │ (Task por task + │
775
- │ checkpoints) │
776
- └──────────┬──────────┘
777
-
778
- ├────────── Complexidade média/alta + ADRs significativos?
779
- │ │
780
- │ SIM ──────┐
781
- │ ▼
782
- │ ┌─────────────────────┐
783
- │ │ FASE 6: SYNC │ ← Condicional
784
- │ │ (Promover decisions │
785
- │ │ para standards) │
786
- │ └──────────┬──────────┘
787
- │ │
788
- │ ⛔ PAUSA → Aprovação do usuário
789
- │ │
790
- NÃO ────────────────────────┘
791
-
792
-
793
- [FIM] Feature concluída
794
-
795
- ┌────────────────────────────────────────────────────────────────────────────┐
796
- │ LEGENDA │
797
- ├────────────────────────────────────────────────────────────────────────────┤
798
- │ ⛔ PAUSA OBRIGATÓRIA - Aguarda interação do usuário │
799
- │ ─── Fluxo principal (sempre executado) │
800
- │ ├── Decisão condicional │
801
- │ [FASE X.Y] Fase intermediária/condicional │
802
- │ [FASE X] Fase principal obrigatória │
803
- └────────────────────────────────────────────────────────────────────────────┘
804
- ```
805
-
806
- **Fases Obrigatórias:** 0, 1, 2, 3, 4, 5 (6 fases principais)
807
- **Fases Condicionais:** 0.5 (auto), 1.5 (se UI), 6 (se complexo)
808
- **Total:** 9 fases possíveis, 6-9 executadas dependendo do contexto
809
-
810
- ---
811
-
812
- ## PAUSAS INTERATIVAS
813
-
814
- ### Princípio
815
- Toda pausa obrigatória DEVE terminar com **exatamente 3 itens** que ajudem o usuário a tomar decisões.
816
-
817
- ### Tipos de Itens
818
-
819
- | Emoji | Tipo | Quando Usar | Exemplo |
820
- |-------|------|-------------|---------|
821
- | ✅ | Ação de Aprovação | Quando está pronto para avançar | "Aprovar e continuar para próxima fase" |
822
- | 🔄 | Ação de Ajuste | Quando há algo para modificar | "Ajustar escopo da feature" |
823
- | 💰 | Ação de Custo | Quando há recursos Azure | "Revisar custos estimados" |
824
- | 📋 | Ação de Revisão | Quando há artefatos para validar | "Modificar contracts gerados" |
825
- | ❓ | Pergunta Aberta | Para clarificar intenções | "Qual a prioridade: performance ou custo?" |
826
- | 💡 | Sugestão Estratégica | Para propor alternativas | "Considerar serverless em vez de Container App?" |
827
- | ⚡ | Ação Rápida | Atalho para comum | "Usar padrão CQRS nesta feature?" |
828
- | 🤔 | Decisão Técnica | Apresentar opções para decisões críticas | "Service Bus vs Storage Queue: qual usar?" (Ver DECISION POINTS) |
829
-
830
- ### Estratégia por Fase
831
-
832
- | Fase | Mix Recomendado | Objetivo |
833
- |------|----------------|----------|
834
- | **FASE 0: PROPOSAL** | 1 ação + 1 pergunta + 1 sugestão | Entender intenção e escopo |
835
- | **FASE 2: DESIGN** | 2 ações + 1 pergunta/sugestão | Validar solução proposta |
836
- | **FASE 4: TASKS** | 3 ações (padrão fixo) | Confirmar plano de execução |
837
-
838
- ### Template de Pausa
839
-
840
- ```markdown
841
- ---
842
- ⛔ **PAUSA OBRIGATÓRIA**
843
-
844
- {Breve contexto do que foi feito}
845
-
846
- **Próximos passos sugeridos:**
847
-
848
- 1. {Emoji} **{Título da ação/pergunta}**
849
- {Descrição breve do que acontece se escolher esta opção}
850
-
851
- 2. {Emoji} **{Título da ação/pergunta}**
852
- {Descrição breve}
853
-
854
- 3. {Emoji} **{Título da ação/pergunta}**
855
- {Descrição breve}
856
-
857
- ---
858
- ```
859
-
860
- ### Exemplo Real
861
-
862
- ```markdown
863
- ---
864
- ⛔ **PAUSA OBRIGATÓRIA**
865
-
866
- Analisamos sua solicitação de "Sistema de pagamentos recorrentes com Asaas".
867
- Complexidade estimada: **MÉDIA** | Stack: **.NET + Blazor** | Custo: **~$5/mês**
868
-
869
- **Próximos passos sugeridos:**
870
-
871
- 1. ✅ **Aprovar e prosseguir para design detalhado**
872
- Gerar spec.md, contracts e estimativa completa de custos
873
-
874
- 2. ❓ **Esclarecer modelo de negócio**
875
- Você pretende cobrar por assinatura mensal, anual ou ambos? Isso afeta o design.
876
-
877
- 3. 💡 **Considerar MVP incremental**
878
- Começar só com pagamentos únicos e adicionar recorrência depois?
879
-
880
- ---
881
- ```
882
-
883
- ---
884
-
885
- ## DECISION POINTS
886
-
887
- ### ⚠️ REGRA CRÍTICA: NUNCA DECIDA SOZINHO
888
-
889
- Você DEVE pausar e consultar o usuário em tempo real quando encontrar decisões técnicas significativas.
890
-
891
- **Decisões que SEMPRE requerem aprovação do usuário:**
892
-
893
- #### 1. **Infraestrutura Azure**
894
- - Escolha de recursos (Service Bus vs Storage Queue vs Redis vs Event Grid)
895
- - SKUs e tiers (Basic vs Standard vs Premium)
896
- - Regiões e replicação
897
- - Recursos pagos vs free tier
898
-
899
- **Exemplo de decisão automática (ERRADO):**
900
- ```
901
- ❌ "Vou usar Azure Service Bus Standard tier para mensageria."
902
- ```
903
-
904
- **Exemplo correto:**
905
- ```
906
- ✅ "Para mensageria assíncrona, temos 3 opções:
907
- 1. Service Bus Standard ($10/mês): Suporta tópicos, sessões, até 1GB
908
- 2. Storage Queue ($0.05/mês): Apenas filas simples, até 500TB
909
- 3. Event Grid ($0.30/mi eventos): Pub/sub nativo, serverless
910
-
911
- Recomendo Storage Queue se você precisa apenas de filas simples e baratas.
912
- Qual prefere?"
913
- ```
914
-
915
- #### 2. **Bibliotecas e Frameworks**
916
- - NuGet packages (.NET libraries)
917
- - UI libraries (Fluent UI vs MudBlazor vs Radzen)
918
- - ORMs além do padrão
919
- - Auth providers (Clerk vs Azure AD vs Auth0)
920
- - SDKs de terceiros
921
-
922
- **Exemplo de decisão automática (ERRADO):**
923
- ```
924
- ❌ "Vou usar MudBlazor para os componentes UI."
925
- ```
926
-
927
- **Exemplo correto:**
928
- ```
929
- ✅ "Para componentes UI no Blazor, temos 2 opções principais:
930
- 1. Fluent UI Blazor: Design Microsoft 365, componentes AI-ready, mais moderno
931
- 2. MudBlazor: Material Design, mais componentes prontos, comunidade maior
932
-
933
- Recomendo Fluent UI se você quer visual moderno e integração com IA.
934
- Qual prefere?"
935
- ```
936
-
937
- #### 3. **Padrões Arquiteturais**
938
- - CQRS vs operações simples
939
- - Repository Pattern vs EF direto no Service
940
- - Mediator (MediatR) vs chamadas diretas
941
- - Event Sourcing vs CRUD tradicional
942
- - DDD patterns complexos
943
-
944
- **Exemplo de decisão automática (ERRADO):**
945
- ```
946
- ❌ "Vou implementar CQRS para separar leitura e escrita."
947
- ```
948
-
949
- **Exemplo correto:**
950
- ```
951
- ✅ "Para essa feature de relatórios, podemos usar:
952
- 1. CQRS: Separar comandos e queries, melhor performance em leitura
953
- Complexidade: Média-Alta | Benefício: Escalabilidade
954
- 2. Repositórios simples: Um repositório por entidade
955
- Complexidade: Baixa | Benefício: Mais rápido de implementar
956
-
957
- Recomendo CQRS se você planeja escalar leituras independentemente.
958
- Qual abordagem prefere?"
959
- ```
960
-
961
- #### 4. **Estrutura de Dados**
962
- - Design de entidades e relacionamentos
963
- - Normalização vs denormalização
964
- - Schemas de API (DTOs, contratos)
965
- - Índices e otimizações de banco
966
-
967
- **Exemplo de decisão automática (ERRADO):**
968
- ```
969
- ❌ "Vou criar uma entidade User com relacionamento N:N com Roles."
970
- ```
971
-
972
- **Exemplo correto:**
973
- ```
974
- ✅ "Para relacionamento User-Roles, temos 2 opções:
975
- 1. N:N com tabela intermediária UserRoles
976
- Pros: Flexível, pode adicionar metadados (data de atribuição)
977
- Cons: Mais complexo, mais JOINs
978
- 2. JSON array em User.Roles
979
- Pros: Mais simples, menos JOINs
980
- Cons: Menos flexível, dificulta queries por role
981
-
982
- Recomendo N:N se você precisa saber quando role foi atribuída.
983
- Qual estrutura prefere?"
984
- ```
985
-
986
- ---
987
-
988
- ### Template de Decisão
989
-
990
- Quando encontrar uma decisão técnica, SEMPRE use este formato:
991
-
992
- ```markdown
993
- ---
994
- 🤔 **DECISÃO TÉCNICA NECESSÁRIA**
995
-
996
- **Contexto:** {Por que precisamos decidir isso agora}
997
-
998
- **Opções disponíveis:**
999
-
1000
- **Opção 1: {Nome}**
1001
- - ✅ Vantagens: {lista concisa}
1002
- - ❌ Desvantagens: {lista concisa}
1003
- - 💰 Custo: {se Azure} ou N/A
1004
- - ⚡ Complexidade: {baixa/média/alta}
1005
-
1006
- **Opção 2: {Nome}**
1007
- - ✅ Vantagens: {lista concisa}
1008
- - ❌ Desvantagens: {lista concisa}
1009
- - 💰 Custo: {se Azure} ou N/A
1010
- - ⚡ Complexidade: {baixa/média/alta}
1011
-
1012
- **Opção 3: {Nome}** (se houver)
1013
- - ...
1014
-
1015
- **💡 Minha recomendação:**
1016
- {Opção X} porque {justificativa técnica baseada no contexto do projeto}
1017
-
1018
- **Trade-offs principais:**
1019
- - {Trade-off 1: ex: performance vs custo}
1020
- - {Trade-off 2: ex: simplicidade vs escalabilidade}
1021
-
1022
- **Qual opção você prefere?** Ou quer ajustar alguma delas?
1023
-
1024
- ---
1025
- ```
1026
-
1027
- ---
1028
-
1029
- ### Quando NÃO pausar (decisões triviais)
1030
-
1031
- Decisões automáticas permitidas (não precisa consultar):
1032
- - ✅ Nomenclatura de variáveis/métodos (seguir standards)
1033
- - ✅ Estrutura de pastas (seguir Clean Architecture padrão do projeto)
1034
- - ✅ Imports e usings
1035
- - ✅ Formatação de código
1036
- - ✅ Tipos primitivos (string vs int, etc.)
1037
- - ✅ Validações básicas (Required, MaxLength, etc.)
1038
- - ✅ Padrões já definidos em project/standards/
1039
-
1040
- **Regra de ouro:** Se a decisão afeta **custo**, **arquitetura**, **dependências externas** ou **estrutura de dados**, SEMPRE consultar.
1041
-
1042
- ---
1043
-
1044
- ### Exemplo Real Completo
1045
-
1046
- **Situação:** Usuário pediu "adicionar cache para melhorar performance"
1047
-
1048
- **❌ ERRADO (decisão automática):**
1049
- ```
1050
- Vou implementar cache usando Redis Premium tier.
1051
- ```
1052
-
1053
- **✅ CORRETO (apresentar opções):**
1054
-
1055
- ```markdown
1056
- ---
1057
- 🤔 **DECISÃO TÉCNICA NECESSÁRIA**
1058
-
1059
- **Contexto:** Você pediu cache para melhorar performance das queries de produtos. Precisamos decidir qual estratégia usar.
1060
-
1061
- **Opções disponíveis:**
1062
-
1063
- **Opção 1: In-Memory Cache (IMemoryCache .NET)**
1064
- - ✅ Vantagens: Zero custo, simples, rápido para dados pequenos
1065
- - ❌ Desvantagens: Limitado à memória do servidor, perdido em restart, não compartilhado entre instâncias
1066
- - 💰 Custo: $0
1067
- - ⚡ Complexidade: Baixa
1068
-
1069
- **Opção 2: Redis (Azure Cache for Redis - Basic tier)**
1070
- - ✅ Vantagens: Persistente, compartilhado, suporta estruturas complexas
1071
- - ❌ Desvantagens: Custo adicional, latência de rede
1072
- - 💰 Custo: ~$16/mês (Basic C0)
1073
- - ⚡ Complexidade: Média
1074
-
1075
- **Opção 3: Distributed Memory Cache (SQL Server)**
1076
- - ✅ Vantagens: Usa SQL existente, sem custo adicional, compartilhado
1077
- - ❌ Desvantagens: Mais lento que Redis, usa DB para cache
1078
- - 💰 Custo: $0 (usa SQL existente)
1079
- - ⚡ Complexidade: Baixa-Média
1080
-
1081
- **💡 Minha recomendação:**
1082
- Opção 1 (IMemoryCache) se você tem apenas 1 instância do app e dados de cache < 100MB.
1083
- Opção 3 (SQL Distributed Cache) se você tem múltiplas instâncias mas quer evitar custo de Redis.
1084
-
1085
- **Trade-offs principais:**
1086
- - Performance vs Custo: Redis é mais rápido mas custa $16/mês
1087
- - Simplicidade vs Escalabilidade: IMemoryCache é simples mas não escala para múltiplas instâncias
1088
-
1089
- **Qual opção você prefere?** Ou quer ajustar alguma delas?
1090
- ---
1091
- ```
1092
-
1093
- ---
1094
-
1095
- ### Integração com Fases
1096
-
1097
- **FASE 1.5 (UI/UX):**
1098
- - ❓ Perguntar: Fluent UI vs MudBlazor vs outra biblioteca
1099
- - ❓ Perguntar: Preferências de layout, cores, componentes
1100
-
1101
- **FASE 2 (DESIGN):**
1102
- - ❓ Perguntar: Padrões arquiteturais (CQRS, Repository, etc.)
1103
- - ❓ Perguntar: Infraestrutura Azure (recursos, SKUs)
1104
- - ❓ Perguntar: Bibliotecas e SDKs necessários
1105
- - ❓ Perguntar: Estrutura de dados (entidades, relacionamentos)
1106
-
1107
- **Durante IMPLEMENTAÇÃO:**
1108
- - ❓ Pausar: Se encontrar decisão não prevista no design
1109
- - ❓ Pausar: Se precisar adicionar dependência nova
1110
- - ❓ Pausar: Se precisar mudar estrutura de dados aprovada
1111
-
1112
- ---
1113
-
1114
- ### Validação Automática (CLI)
1115
-
1116
- Use o comando `morph-spec validate-decisions` para verificar se decisões foram documentadas:
1117
-
1118
- ```bash
1119
- # Validar decisions.md de uma feature
1120
- morph-spec validate-decisions {feature-name}
1121
-
1122
- # O comando verifica:
1123
- # - Decisões de infraestrutura têm ADRs?
1124
- # - Bibliotecas escolhidas estão documentadas?
1125
- # - Padrões arquiteturais estão justificados?
1126
- ```
1127
-
1128
- ---
1129
-
1130
- ## AGENTES
1131
-
1132
- ### Core Agents (Sempre Ativos)
1133
-
1134
- | Agente | Responsabilidades |
1135
- |--------|-------------------|
1136
- | **Standards Architect** | Padrões em `framework/standards/` e `project/standards/`, nomenclatura, revisão |
1137
- | **Azure Architect** | Infra Azure, Bicep IaC, App Service, Container Apps, SQL |
1138
- | **Cost Guardian** | Validar custos, alertar recursos caros, bloquear não aprovados |
1139
-
1140
- ### Stack Agents (Por Stack)
1141
-
1142
- | Agente | Stack | Keywords |
1143
- |--------|-------|----------|
1144
- | **Blazor Builder** | .NET + Blazor | blazor, razor, server-side |
1145
- | **NextJS Expert** | .NET + Next.js | nextjs, react, api, frontend |
1146
- | **Shopify Expert** | Shopify | shopify, hydrogen, liquid |
1147
-
1148
- ### Specialist Agents (Sob Demanda)
1149
-
1150
- | Agente | Keywords de Ativação |
1151
- |--------|---------------------|
1152
- | **EF Modeler** | entity, database, migration, ef core |
1153
- | **Agent Framework Expert** | agent, ai, llm, rag, embedding (.NET 10) |
1154
- | **Hangfire Orchestrator** | scheduled, job, background, cron |
1155
- | **UI/UX Designer** | **PT-BR:** tela, interface, formulário, visualização, mostrar, exibir, cadastro<br>**EN:** screen, view, display, form, show, render, create<br>**Components:** wizard, dashboard, chart, dialog, modal, card, list, grid<br>**Stack:** blazor, ui, ux, page, component, frontend<br>(FASE 1.5 obrigatória) |
1156
- | **PO/PM Advisor** | unclear, requirements, priority, ROI |
1157
-
1158
- ### Integration Agents (Sob Demanda)
1159
-
1160
- | Agente | Keywords | Docs |
1161
- |--------|----------|------|
1162
- | **Asaas Financial** | asaas, payment, pix, boleto | [API](https://docs.asaas.com/) |
1163
- | **Clerk Auth** | clerk, auth, login, signup | [SDK](https://clerk.com/) |
1164
- | **Azure Identity** | identity, entra, microsoft auth | [Docs](https://learn.microsoft.com/entra/) |
1165
-
1166
- ### Infra Agents (Sob Demanda)
1167
-
1168
- | Agente | Keywords | Docs |
1169
- |--------|----------|------|
1170
- | **Bicep Architect** | bicep, iac, infra, provision | [Bicep](https://learn.microsoft.com/azure/azure-resource-manager/bicep/) |
1171
- | **DevOps Engineer** | pipeline, ci/cd, deploy, release | [Pipelines](https://learn.microsoft.com/azure/devops/pipelines/) |
1172
- | **Container Specialist** | docker, container, containerize | [Container Apps](https://learn.microsoft.com/azure/container-apps/) |
1173
-
1174
- ---
1175
-
1176
- ## LIMITES DE CUSTO
1177
-
1178
- ### Limites Configuráveis
1179
-
1180
- Os limites de custo são definidos em `.morph/config/config.json` e podem ser customizados por projeto:
1181
-
1182
- ```json
1183
- {
1184
- "costs": {
1185
- "monthlyBudget": 15,
1186
- "currency": "USD",
1187
- "limits": {
1188
- "freeTierOnly": 0,
1189
- "withApproval": 10,
1190
- "requiresADR": 10
1191
- },
1192
- "enforcement": {
1193
- "blockCommitsAboveLimit": true,
1194
- "requireADRInDecisionsMd": true,
1195
- "alertOnApproach": 0.8
1196
- }
1197
- }
1198
- }
1199
- ```
1200
-
1201
- | Limite | Padrão | Descrição | Requisito |
1202
- |--------|--------|-----------|-----------|
1203
- | `freeTierOnly` | $0 | Apenas recursos free tier | Nenhum |
1204
- | `withApproval` | $10 | Requer confirmação do usuário | Aprovação explícita |
1205
- | `requiresADR` | $10 | Requer ADR documentado | ADR em decisions.md |
1206
-
1207
- ### Cost Calculator CLI
1208
-
1209
- **Validação automática de custos:**
1210
-
1211
- ```bash
1212
- # Calcular custos de arquivos Bicep
1213
- morph-spec cost infra/main.bicep --verbose
1214
-
1215
- # Múltiplos arquivos (glob pattern)
1216
- morph-spec cost "infra/**/*.bicep" --json
1217
-
1218
- # Usar config customizado
1219
- morph-spec cost infra/main.bicep --config .morph/config/config.json
1220
-
1221
- # OU, se em desenvolvimento local do framework:
1222
- # node bin/calculate-costs.js infra/main.bicep --verbose
1223
- ```
1224
-
1225
- **Funcionalidades:**
1226
- - ✅ Parseia arquivos Bicep e extrai recursos + SKUs
1227
- - ✅ Calcula custo mensal baseado em pricing table do Azure
1228
- - ✅ Valida contra limites configurados
1229
- - ✅ Exit code 1 se exceder limite `requiresADR`
1230
- - ✅ Output JSON ou verbose (ASCII table)
1231
-
1232
- **Pricing table inclui:**
1233
- - Azure SQL Database (Free, Basic, S0-S4, P1-P2, GP, BC)
1234
- - Container Apps (Consumption, Dedicated)
1235
- - Storage Account (LRS, GRS, Premium)
1236
- - Application Insights (Free, Basic)
1237
- - Key Vault (Standard, Premium)
1238
- - Cosmos DB (Serverless, Provisioned)
1239
- - App Service (F1, D1, B1-B2, S1, P1v2)
1240
- - Service Bus (Basic, Standard, Premium)
1241
- - Redis Cache (C0-C2, P1)
1242
- - Azure Functions (Consumption, Premium)
1243
-
1244
- ### Pre-commit Hook
1245
-
1246
- **Bloqueio automático de commits caros:**
1247
-
1248
- ```bash
1249
- # Instalar hook
1250
- cp .morph/hooks/pre-commit-costs.sh .git/hooks/pre-commit
1251
- chmod +x .git/hooks/pre-commit
1252
-
1253
- # Ou symlink
1254
- ln -s ../../.morph/hooks/pre-commit-costs.sh .git/hooks/pre-commit
1255
- ```
1256
-
1257
- **Comportamento:**
1258
- 1. Detecta arquivos Bicep modificados no staged area
1259
- 2. Roda cost calculator automaticamente
1260
- 3. Se custo > `requiresADR`: procura ADR em decisions.md
1261
- 4. **Bloqueia commit** se ADR não encontrado
1262
- 5. Mensagem clara de erro com instruções
1263
-
1264
- ### Quando Usar
1265
-
1266
- | Fase | Ação | CLI |
1267
- |------|------|-----|
1268
- | **FASE 2 (Design)** | Estimar custos de infra proposta | `/morph-design` (integrado) |
1269
- | **Antes de commit** | Validar custos automaticamente | Pre-commit hook |
1270
- | **Revisão manual** | Verificar custos de Bicep | `morph-spec cost <bicep-files> --verbose` |
1271
-
1272
- ### Exemplo de ADR de Custo
1273
-
1274
- Se custo > `requiresADR`, documente em `decisions.md`:
1275
-
1276
- ```markdown
1277
- ## ADR-003: Infrastructure Costs
1278
-
1279
- **Estimated Monthly Cost:** $12.50
1280
-
1281
- **Breakdown:**
1282
- - Azure SQL S0: $14.72/mo
1283
- - Container App (scale-to-zero): $0.00/mo
1284
- - Storage LRS: $0.02/mo
1285
-
1286
- **Justification:**
1287
- S0 tier necessary for 50k+ rows with indexed queries.
1288
- Basic tier ($ 4.99) insufficient for expected load.
1289
-
1290
- **Alternatives Considered:**
1291
- - Basic tier: Too slow for projected 1M queries/month
1292
- - Cosmos DB: More expensive ($23.36 minimum)
1293
-
1294
- **Approval:** [User/Team] on 2024-01-15
1295
- ```
1296
-
1297
- ---
1298
-
1299
- ## INFRASTRUCTURE AS CODE
1300
-
1301
- ### Princípio: Zero Portal
1302
-
1303
- > NUNCA criar recursos Azure manualmente. Tudo via Bicep.
1304
-
1305
- ### Estrutura IaC
1306
-
1307
- ```
1308
- infra/
1309
- ├── main.bicep # Entry point
1310
- ├── parameters.dev.json # Params dev
1311
- ├── parameters.prod.json # Params prod
1312
- └── modules/
1313
- ├── app-service.bicep
1314
- ├── container-app.bicep
1315
- ├── sql-database.bicep
1316
- ├── storage.bicep
1317
- ├── key-vault.bicep
1318
- └── app-insights.bicep
1319
- ```
1320
-
1321
- ### Quando usar SDK .NET vs Bicep
1322
-
1323
- | Recurso | Abordagem |
1324
- |---------|-----------|
1325
- | Infra estática (SQL, Storage, Container Apps) | Bicep |
1326
- | Recursos dinâmicos (Fabric, Azure AI) | SDK .NET |
1327
- | CI/CD | YAML + Bicep |
1328
-
1329
- ---
1330
-
1331
- ## ESTRUTURA DE OUTPUTS
1332
-
1333
- ```
1334
- .morph/project/outputs/{feature-name}/
1335
- ├── proposal.md # Análise inicial e proposta (FASE 0)
1336
- ├── ui-design-system.md # Design system: cores, tipografia, spacing (FASE 1.5 - se front-end)
1337
- ├── ui-mockups.md # Wireframes ASCII + descrições (FASE 1.5 - se front-end)
1338
- ├── ui-components.md # Specs componentes Fluent UI/MudBlazor (FASE 1.5 - se front-end)
1339
- ├── ui-flows.md # Fluxos de usuário + diagramas (FASE 1.5 - se front-end)
1340
- ├── spec.md # Especificação técnica completa (FASE 2)
1341
- ├── contracts.cs # Interfaces, DTOs, Enums (FASE 2)
1342
- ├── tasks.json # Lista de tasks (FASE 4)
1343
- ├── decisions.md # ADRs (FASE 2+, atualizado na FASE 1.5 com UI lib)
1344
- └── recap.md # Resumo pós-implementação (FASE 5)
1345
- ```
1346
-
1347
- **Nota:** Arquivos `ui-*.md` são gerados apenas se a feature envolver front-end (keywords detectadas).
1348
-
1349
- **Arquivos de Tema** (gerados na FASE 5 baseados em ui-design-system.md):
1350
- - `wwwroot/css/design-system.css` - CSS Variables
1351
- - `Themes/FluentDesignTheme.cs` - Se Fluent UI
1352
- - `Themes/MudTheme.cs` - Se MudBlazor
1353
-
1354
- ---
1355
-
1356
- ## STATE MANAGEMENT
1357
-
1358
- O MORPH-SPEC rastreia automaticamente o progresso de features usando `.morph/state.json`.
1359
-
1360
- ### Arquivo de State
1361
-
1362
- ```json
1363
- {
1364
- "version": "2.1.1",
1365
- "project": {
1366
- "name": "ProjectName",
1367
- "type": "blazor-server",
1368
- "createdAt": "2024-01-15T10:00:00Z",
1369
- "updatedAt": "2024-01-15T14:30:00Z"
1370
- },
1371
- "features": {
1372
- "feature-name": {
1373
- "status": "in_progress",
1374
- "phase": "implement",
1375
- "activeAgents": ["blazor-builder", "ef-modeler"],
1376
- "outputs": {
1377
- "proposal": { "created": true, "path": ".morph/project/outputs/..." },
1378
- "spec": { "created": true, "path": ".morph/project/outputs/..." },
1379
- "tasks": { "created": true, "path": ".morph/project/outputs/..." }
1380
- },
1381
- "tasks": {
1382
- "total": 12,
1383
- "completed": 5,
1384
- "inProgress": 1,
1385
- "pending": 6
1386
- },
1387
- "checkpoints": [
1388
- {
1389
- "timestamp": "2024-01-15T12:00:00Z",
1390
- "phase": "implement",
1391
- "completedTasks": 3,
1392
- "note": "Checkpoint após T001-T003"
1393
- }
1394
- ],
1395
- "costs": {
1396
- "estimated": 2.50,
1397
- "approved": true
1398
- }
1399
- }
1400
- },
1401
- "metadata": {
1402
- "totalFeatures": 1,
1403
- "completedFeatures": 0,
1404
- "totalCostEstimated": 2.50
1405
- }
1406
- }
1407
- ```
1408
-
1409
- ### CLI para State Management
1410
-
1411
- Use o comando `morph-spec state` para manipular o state:
1412
-
1413
- ```bash
1414
- # Inicializar state (primeira vez)
1415
- morph-spec state init
1416
-
1417
- # Criar/atualizar feature
1418
- morph-spec state set feature-name phase design
1419
- morph-spec state set feature-name status in_progress
1420
-
1421
- # Atualizar tasks
1422
- morph-spec state set feature-name tasks.completed 5
1423
- morph-spec state set feature-name tasks.total 12
1424
-
1425
- # Adicionar agentes
1426
- morph-spec state add-agent feature-name blazor-builder
1427
-
1428
- # Marcar outputs como criados
1429
- morph-spec state mark-output feature-name spec
1430
- morph-spec state mark-output feature-name contracts
1431
-
1432
- # Registrar checkpoint
1433
- morph-spec state checkpoint feature-name "Completadas tasks T001-T003"
1434
-
1435
- # Listar todas as features
1436
- morph-spec state list
1437
-
1438
- # Obter detalhes de uma feature (JSON)
1439
- morph-spec state get feature-name
1440
-
1441
- # OU, se em desenvolvimento local do framework:
1442
- # node bin/state-manager.js <command>
1443
- ```
1444
-
1445
- ### Quando Atualizar State
1446
-
1447
- **SEMPRE** atualize o state nos seguintes momentos:
1448
-
1449
- | Momento | Comando |
1450
- |---------|---------|
1451
- | **Criar proposal** (FASE 0) | `set {feature} phase proposal`<br>`mark-output {feature} proposal` |
1452
- | **Iniciar design** (FASE 2) | `set {feature} phase design`<br>`add-agent {feature} {agent-id}` |
1453
- | **Aprovar design** | `set {feature} status approved`<br>`mark-output {feature} spec`<br>`mark-output {feature} contracts` |
1454
- | **Iniciar implementação** (FASE 5) | `set {feature} phase implement`<br>`set {feature} status in_progress`<br>`set {feature} tasks.total {N}` |
1455
- | **Completar task** | `set {feature} tasks.completed {X}` |
1456
- | **Checkpoint (a cada 3 tasks)** | `checkpoint {feature} "nota"` |
1457
- | **Finalizar feature** | `set {feature} status done`<br>`mark-output {feature} recap` |
1458
-
1459
- ### Benefícios
1460
-
1461
- - ✅ **Persistência**: Estado mantido entre sessões
1462
- - ✅ **Rastreamento**: Saber exatamente em qual fase cada feature está
1463
- - ✅ **Progresso**: Visualizar tasks completadas vs total
1464
- - ✅ **Histórico**: Checkpoints registrados com timestamps
1465
- - ✅ **Custos**: Rastreamento de custos estimados e aprovações
1466
- - ✅ **Dashboard**: Comando `list` gera visualização ASCII automática
1467
-
1468
- ---
1469
-
1470
- ## COMANDOS
1471
-
1472
- ### Comandos CLI (via npm package)
1473
-
1474
- | Comando | Descrição | Quando Usar |
1475
- |---------|-----------|-------------|
1476
- | `morph-spec init` | Inicializar MORPH no projeto | Primeira vez em um projeto |
1477
- | `morph-spec detect` | Detectar stack/patterns | Projeto existente, entender estrutura |
1478
- | `morph-spec sync` | Sincronizar standards | Após implementar features |
1479
- | `morph-spec update` | Atualizar framework | Nova versão do MORPH disponível |
1480
- | `morph-spec doctor` | Check de saúde | Diagnosticar problemas |
1481
- | `morph-spec state <action>` | Gerenciar state.json | Rastrear features, progresso, agentes |
1482
- | `morph-spec cost <bicep-files>` | Calcular custos Azure | Validar custos de infraestrutura |
1483
- | `morph-spec generate design-system` | Gerar CSS + temas | Após aprovar UI/UX design |
1484
-
1485
- ### Story-Driven Development Commands
1486
-
1487
- | Comando | Descrição | Quando Usar |
1488
- |---------|-----------|-------------|
1489
- | `morph-spec story create <feature> <story-id>` | Criar story com Dev Notes auto-injetadas | Início da implementação |
1490
- | `morph-spec story shard <feature>` | Dividir spec.md em shards (90% token savings) | Feature com spec grande (5+ seções) |
1491
- | `morph-spec story status <feature> show` | Ver progresso do sprint | Qualquer momento |
1492
- | `morph-spec story status <feature> start <id>` | Marcar story como in_progress | Antes de implementar |
1493
- | `morph-spec story status <feature> qa <id>` | Marcar story como ready_for_qa | Após implementar |
1494
- | `morph-spec story status <feature> done <id>` | Marcar story como done | Após QA aprovar |
1495
- | `morph-spec story status <feature> next` | Mostrar próxima story | Planejar próximo trabalho |
1496
-
1497
- **Options:**
1498
- - `--title <title>` - Título da story
1499
- - `--tasks <tasks>` - Lista de tasks separadas por vírgula
1500
- - `--dry-run` - Preview sem escrever arquivos
1501
- - `--verbose` - Mostrar informações detalhadas
1502
-
1503
- **Exemplo completo:**
1504
- ```bash
1505
- # 1. Shardar spec (opcional)
1506
- morph-spec story shard scheduled-reports
1507
-
1508
- # 2. Criar stories
1509
- morph-spec story create scheduled-reports SR-001 \
1510
- --title "Create entity" \
1511
- --tasks "Create entity,EF mapping,Migration,Tests"
1512
-
1513
- # 3. Implementar
1514
- morph-spec story status scheduled-reports start SR-001
1515
- # [Claude implementa código]
1516
- morph-spec story status scheduled-reports qa SR-001
1517
-
1518
- # 4. QA
1519
- # [Claude revisa código]
1520
- morph-spec story status scheduled-reports done SR-001
1521
-
1522
- # 5. Ver progresso
1523
- morph-spec story status scheduled-reports show
1524
- ```
1525
-
1526
- **Ver também:** `content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md` para guia completo.
1527
-
1528
- ### State Management Command
1529
-
1530
- **Gerencia state.json para rastreamento de features:**
1531
-
1532
- ```bash
1533
- # Inicializar state.json
1534
- morph-spec state init [--force] [--project <name>] [--type <type>]
1535
-
1536
- # Ver feature
1537
- morph-spec state get <feature> [--json]
1538
-
1539
- # Atualizar propriedade (suporta dot notation)
1540
- morph-spec state set <feature> <key> <value>
1541
-
1542
- # Registrar checkpoint
1543
- morph-spec state checkpoint <feature> "<note>"
1544
-
1545
- # Listar todas as features
1546
- morph-spec state list
1547
-
1548
- # Gerenciar agentes
1549
- morph-spec state add-agent <feature> <agent-id>
1550
- morph-spec state remove-agent <feature> <agent-id>
1551
-
1552
- # Marcar outputs como criados
1553
- morph-spec state mark-output <feature> <output-type>
1554
- ```
1555
-
1556
- **Uso automático interno:**
1557
- - `morph-spec story create/status` atualiza state automaticamente
1558
- - Slash commands `/morph-*` registram fases e checkpoints
1559
- - Todos os comandos que geram outputs marcam no state
1560
-
1561
- **Exemplo completo:**
1562
- ```bash
1563
- # Setup inicial
1564
- morph-spec state init --project "MyApp" --type "blazor-server"
1565
-
1566
- # Durante feature
1567
- morph-spec state set scheduled-reports phase design
1568
- morph-spec state add-agent scheduled-reports blazor-builder
1569
- morph-spec state mark-output scheduled-reports spec
1570
-
1571
- # Checkpoints (automáticos ou manuais)
1572
- morph-spec state checkpoint scheduled-reports "Completed T001-T003"
1573
-
1574
- # Ver progresso
1575
- morph-spec state list
1576
- ```
1577
-
1578
- ### Cost Calculator Command
1579
-
1580
- **Calcula custos de infraestrutura Azure de arquivos Bicep:**
1581
-
1582
- ```bash
1583
- # Calcular custos
1584
- morph-spec cost <bicep-files> [--verbose] [--json] [--strict]
1585
-
1586
- # Exemplos
1587
- morph-spec cost infra/main.bicep --verbose
1588
- morph-spec cost "infra/**/*.bicep" --json
1589
- morph-spec cost infra/main.bicep --strict # Exit code 1 se > ADR threshold
1590
- ```
1591
-
1592
- **Uso automático interno:**
1593
- - `/morph-design` calcula custos automaticamente se detectar Bicep
1594
- - Pre-commit hook valida custos antes de commitar
1595
- - `morph-spec story create` alerta se tasks incluem "bicep"
1596
-
1597
- **Pricing table inclui:**
1598
- - Azure SQL Database (Free, Basic, S0-S4, P1-P2, GP, BC)
1599
- - Container Apps (Consumption, Dedicated)
1600
- - Storage Account, Application Insights, Key Vault
1601
- - Cosmos DB, App Service, Service Bus, Redis, Functions
1602
-
1603
- **Validação automática:**
1604
- - Alerta se custo > `freeTierOnly` (requer aprovação)
1605
- - Bloqueia se custo > `requiresADR` (requer ADR em decisions.md)
1606
- - Pre-commit hook impede commits sem ADR
1607
-
1608
- ### Generate Design System Command
1609
-
1610
- **Gera CSS + temas C# a partir de ui-design-system.md:**
1611
-
1612
- ```bash
1613
- # Gerar design system
1614
- morph-spec generate design-system <ui-design-system.md> [options]
1615
-
1616
- # Opções
1617
- --fluent # Apenas Fluent UI theme
1618
- --mud # Apenas MudBlazor theme
1619
- --both # Ambos os temas (padrão)
1620
- --namespace <ns> # Namespace C# (padrão: YourProject.Themes)
1621
- --dry-run # Preview sem escrever arquivos
1622
-
1623
- # Exemplos
1624
- morph-spec generate design-system .morph/project/outputs/my-feature/ui-design-system.md --fluent
1625
- morph-spec generate design-system .morph/project/outputs/my-feature/ui-design-system.md --both
1626
- ```
1627
-
1628
- **Arquivos gerados:**
1629
- - `wwwroot/css/design-system.css` - CSS variables
1630
- - `Themes/FluentDesignTheme.cs` - Tema Fluent UI (se --fluent ou --both)
1631
- - `Themes/MudDesignTheme.cs` - Tema MudBlazor (se --mud ou --both)
1632
-
1633
- **Uso automático interno:**
1634
- - `/morph-uiux` gera temas automaticamente após aprovar design
1635
- - FASE 5: IMPLEMENT regenera se ui-design-system.md for modificado
1636
-
1637
- **Parsing automático de:**
1638
- - Primary/Secondary/Neutral colors (#hex)
1639
- - Semantic colors (Success, Error, Warning, Info)
1640
- - Font families, sizes, weights
1641
- - Spacing values (margin, padding, gap)
1642
-
1643
- ---
1644
-
1645
- ### Slash Commands (Claude Code)
1646
-
1647
- Comandos disponíveis para cada fase do workflow:
1648
-
1649
- | Comando | Fase | Descrição |
1650
- |---------|------|-----------|
1651
- | `/morph-proposal {feature}` | FASE 0 | Criar proposta inicial, detectar agentes |
1652
- | `/morph-setup {feature}` | FASE 1 | Carregar contexto, confirmar stack e padrões |
1653
- | `/morph-uiux {feature}` | FASE 1.5 | Coletar UI/UX, gerar wireframes e specs de componentes (condicional) |
1654
- | `/morph-design {feature}` | FASE 2 | Gerar spec.md, contracts.cs, decisions.md, estimar custos |
1655
- | `/morph-clarify {feature}` | FASE 3 | Identificar ambiguidades, fazer perguntas de clarificação |
1656
- | `/morph-tasks {feature}` | FASE 4 | Quebrar spec em tasks executáveis, definir checkpoints |
1657
- | `/morph-apply {feature}` | FASE 5 | Implementar tasks sequencialmente com validação de fases |
1658
- | `/morph-status` | Qualquer | Mostrar dashboard de progresso com state.json |
1659
- | `/morph-archive {feature}` | Pós-impl | Arquivar feature concluída |
1660
-
1661
- **Uso típico:**
1662
-
1663
- ```bash
1664
- # 1. Criar proposta
1665
- /morph-proposal scheduled-reports
1666
-
1667
- # 2. Setup (após aprovação)
1668
- /morph-setup scheduled-reports
1669
-
1670
- # 3. UI/UX (se necessário)
1671
- /morph-uiux scheduled-reports
1672
-
1673
- # 4. Design técnico
1674
- /morph-design scheduled-reports
1675
-
1676
- # 5. Clarificações
1677
- /morph-clarify scheduled-reports
1678
-
1679
- # 6. Breakdown de tasks
1680
- /morph-tasks scheduled-reports
1681
-
1682
- # 7. Implementação
1683
- /morph-apply scheduled-reports
1684
-
1685
- # 8. Ver status a qualquer momento
1686
- /morph-status
1687
-
1688
- # 9. Arquivar quando completo
1689
- /morph-archive scheduled-reports
1690
- ```
1691
-
1692
- **Validação de fases:**
1693
- - `/morph-apply` valida que TODAS as fases anteriores foram concluídas
1694
- - Impossível pular fases (segurança do workflow)
1695
- - State.json rastreia progresso automaticamente
1696
-
1697
- ---
1698
-
1699
- ## REFERÊNCIAS
1700
-
1701
- ### Framework Standards (Read-only, do MORPH)
1702
- - `framework/standards/coding.md` - Padrões de código
1703
- - `framework/standards/architecture.md` - Padrões de arquitetura
1704
- - `framework/standards/azure.md` - Padrões Azure e IaC
1705
- - `framework/standards/agent-framework-setup.md` - Setup Agent Framework (.NET 10)
1706
- - `framework/standards/passkeys-auth.md` - Autenticação com Passkeys/WebAuthn
1707
- - `framework/standards/vector-search-rag.md` - Vector Search + RAG com EF Core 10
1708
- - `framework/standards/dotnet10-migration.md` - Guia de migração .NET 9 → 10
1709
- - `framework/standards/fluent-ui-setup.md` - UI Library recomendada (Fluent UI Blazor)
1710
- - `framework/standards/migration-guide.md` - Guia de migração App Service → Container Apps
1711
-
1712
- ### Framework Templates
1713
- - `framework/templates/` - Templates para outputs de features
1714
- - `framework/templates/infra/` - Templates Bicep e scripts de deploy
1715
-
1716
- ### Project Context (Editável, do projeto)
1717
- - `.morph/project/context/README.md` - Overview do projeto
1718
- - `.morph/project/standards/inferred.md` - Standards detectados automaticamente
1719
- - `.morph/project/standards/*.md` - Overrides e extensões dos standards
1720
- - `.morph/project/outputs/` - Features em desenvolvimento
1721
- - `.morph/config.json` - Config do projeto + link para framework
1722
-
1723
- ### Azure DevOps (se aplicável)
1724
- - `.azure/README.md` - Overview completo de CI/CD
1725
- - `.azure/pipelines/` - Pipelines (staging, prod)
1726
- - `.azure/docs/azure-devops-setup.md` - Setup Workload Identity Federation
1727
-
1728
- ---
1729
-
1730
- *MORPH-SPEC by Polymorphism Tech*
1
+ # MORPH-SPEC - Instruções para Claude Code
2
+
3
+ **M**ethodical **O**rchestration for **R**eliable **P**roduction-ready **SPEC**-driven development
4
+
5
+ > by Polymorphism Tech
6
+
7
+ Sistema de desenvolvimento orientado por especificações. Hub de agentes especializados em multi-stack (.NET/Blazor, .NET/Next.js) com Infrastructure as Code.
8
+
9
+ ---
10
+
11
+ ## REGRAS CRÍTICAS
12
+
13
+ ### NUNCA:
14
+ - Pular direto para código sem especificação
15
+ - Implementar sem aprovação do design
16
+ - Ignorar os padrões (framework/standards/ ou project/standards/)
17
+ - Criar recursos Azure manualmente no portal (use Bicep)
18
+ - Gerar código sem contracts definidos
19
+ - **Tomar decisões técnicas sozinho (infraestrutura, bibliotecas, patterns, schemas)**
20
+
21
+ ### SEMPRE:
22
+ - Seguir workflow adequado à complexidade (ver WORKFLOWS)
23
+ - Gerar outputs em `.morph/project/outputs/{feature}/`
24
+ - Documentar decisões em `decisions.md`
25
+ - Checkpoint a cada 3 tasks implementadas
26
+ - Usar Infrastructure as Code (Bicep)
27
+ - Usar exclusivamente Microsoft Agent Framework (.NET 10)
28
+ - Coletar input do usuário na FASE 1.5 (layout, referências, imagens)
29
+ - **Consultar usuário em DECISION POINTS**
30
+
31
+ ---
32
+
33
+ ## AGENTES E SKILLS
34
+
35
+ **Agent** = Metadata em `.morph/config/agents.json` (quem sou, quando ativo)
36
+ **Skill** = Implementação em `.claude/skills/{cat}/{id}.md` (como faço, prompts, workflows)
37
+
38
+ **Workflow:** Keywords no input → `npx morph-spec detect-agents "{input}"` → retorna agent-ids → Claude ativa agentes → invoca Skills dos detectados
39
+
40
+ ```bash
41
+ npx morph-spec detect-agents "implementar jobs agendados" # Detectar agentes por keywords
42
+ npx morph-spec detect-agents --verbose "criar dashboard" # Ver matches detalhados
43
+ npx morph-spec detect # Detectar stack/arquitetura do projeto
44
+ npx morph-spec validate-agents-skills # Validar consistência
45
+ ```
46
+
47
+ Após detectar, registrar: `morph-spec state add-agent {feature} {agent-id}`
48
+
49
+ ### Agentes Disponíveis
50
+
51
+ | Tipo | Agente | Keywords |
52
+ |------|--------|----------|
53
+ | **Core** | Standards Architect | *(sempre ativo)* |
54
+ | **Core** | Azure Architect | *(sempre ativo)* |
55
+ | **Core** | .NET Senior Engineer | *(sempre ativo)* — ultrathink mode |
56
+ | **Stack** | Blazor Builder | blazor, razor, server-side |
57
+ | **Stack** | NextJS Expert | nextjs, react, api, frontend |
58
+ | **Specialist** | EF Modeler | entity, database, migration, ef core |
59
+ | **Specialist** | Code Analyzer | analyze, review, refactor, clean code, smell, duplicate |
60
+ | **Specialist** | Agent Framework Expert | agent, ai, llm, rag, embedding, workflow, orchestration, mcp, a2a, middleware |
61
+ | **Specialist** | Hangfire Orchestrator | scheduled, job, background, cron |
62
+ | **Specialist** | UI/UX Designer | tela, interface, dashboard, form, chart, wizard, blazor, ui, ux, page, component |
63
+ | **Specialist** | PO/PM Advisor | unclear, requirements, priority, ROI |
64
+ | **Integration** | Asaas Financial | asaas, payment, pix, boleto |
65
+ | **Integration** | Clerk Auth | clerk, auth, login, signup |
66
+ | **Integration** | Azure Identity | identity, entra, microsoft auth |
67
+ | **Integration** | Resend Email | resend, email, transactional, notification |
68
+ | **Infra** | Bicep Architect | bicep, iac, infra, provision |
69
+ | **Infra** | DevOps Engineer | pipeline, ci/cd, deploy, release |
70
+ | **Infra** | Container Specialist | docker, container, containerize |
71
+
72
+ ---
73
+
74
+ ## WORKFLOWS POR COMPLEXIDADE
75
+
76
+ O MORPH-SPEC detecta automaticamente a complexidade via `src/lib/complexity-analyzer.js`. Override: `[FAST-TRACK]` ou `[FULL-MORPH]` no pedido.
77
+
78
+ | Aspecto | Fast Track | Standard | Full MORPH | UI Refresh | Design Impl |
79
+ |---------|-----------|----------|------------|------------|-------------|
80
+ | **Quando** | Bug fixes, ajustes | Features simples | Features complexas | Redesign visual | Prototipo → Codigo |
81
+ | **Arquivos** | 3 | 3-10 | > 10 | CSS + .razor | .html .razor |
82
+ | **Fases** | 2 | 4 | 9 (todas) | 3 | 3 |
83
+ | **Pausas** | 1 | 2-3 | 5-6 | 2 | 2 |
84
+ | **Outputs** | Nenhum | proposal, spec, recap | Todos (9+) | checklist, CSS, recap | recap, CSS |
85
+
86
+ **Detalhes de cada workflow:** Ler `content/.morph/docs/workflows/` para fases completas.
87
+
88
+ **Keywords de detecção:**
89
+ - **Trivial:** bug, fix, corrigir, ajustar, hotfix, edge case, cor, css
90
+ - **Infra:** azure, bicep, sql, container, deploy, infra
91
+ - **Arquitetura:** sistema, autenticação, integração, pattern, cqrs, subsistema
92
+ - **UI Refresh:** redesign, redesenhar, bonito, visual, estetica, modernizar
93
+ - **Design Impl:** prototipo, prototype, figma, html para, converter design, replicar
94
+
95
+ ---
96
+
97
+ ## AS 9 FASES DO WORKFLOW
98
+
99
+ | Fase | Gatilho | Ações Principais | Output | Pausa? |
100
+ |------|---------|-------------------|--------|--------|
101
+ | **0.5 CONTEXT** | Início sessão (auto) | Detectar framework, projeto, stack, histórico; gerar standards inferidos | context/, inferred.md | Não |
102
+ | **0 PROPOSAL** | Feature request | `npx morph-spec detect`; analisar; gerar proposal.md; registrar agentes | proposal.md | **Sim** |
103
+ | **1 SETUP** | Proposal aprovado | Ler config.json; confirmar stack; ativar agentes; criar pasta outputs | Confirmação | Não |
104
+ | **1.5 UI/UX** | Setup + keywords UI *(condicional)* | Perguntar layout/refs ao usuário; gerar wireframes e specs AGNÓSTICOS (sem escolher lib UI) | ui-*.md | **Sim** |
105
+ | **2 DESIGN** | Contexto confirmado | Gerar spec.md + contracts.cs; DECISION POINTS (lib UI, padrões, dados, infra, SDKs); estimar custos | spec.md, contracts.cs, decisions.md | **Sim** |
106
+ | **3 CLARIFY** | Design aprovado | Identificar ambiguidades; perguntas de clarificação; validar edge cases | Spec atualizado | Não |
107
+ | **4 TASKS** | Clarificações resolvidas | Quebrar spec em tasks T001-TXXX; definir ordem, checkpoints, dependências | tasks.json | **Sim** |
108
+ | **5 IMPLEMENT** | Tasks aprovadas | Implementar task por task; `npx morph-spec task done {feature} {task-id}` após cada; gerar recap.md | Código + recap.md | Não |
109
+ | **6 SYNC** | Implementação + complexidade média/alta *(condicional)* | Promover decisions.md para project/standards/; gerar commit sync | standards/*.md | **Sim** |
110
+
111
+ **Fases Obrigatórias:** 0, 1, 2, 3, 4, 5
112
+ **Fases Condicionais:** 0.5 (auto), 1.5 (se UI), 6 (se complexo)
113
+
114
+ ### Regras da FASE 5 (IMPLEMENT)
115
+
116
+ - **SEMPRE** chamar `npx morph-spec task done {feature} {task-id}` após cada task (validators run automatically)
117
+ - **Se validação falhar:** corrigir violações ANTES de re-executar `task done`. NUNCA usar `--skip-validation` sem autorização do usuário
118
+ - **NUNCA** atualizar state.json ou tasks.json manualmente
119
+ - **NUNCA** pular tasks com dependências não completadas
120
+ - Framework gerencia checkpoints automaticamente (a cada 3 tasks, inclui validation summary)
121
+ - Usar `morph-spec phase advance {feature}` para avançar entre fases (valida → avança → mostra próximos passos)
122
+ - Gerar recap: `morph-spec generate recap {feature}` (auto-popula com dados reais de state + validation + contracts)
123
+
124
+ ---
125
+
126
+ ## PAUSAS INTERATIVAS
127
+
128
+ Toda pausa obrigatória termina com **exatamente 3 itens** (mix de ações/perguntas/sugestões):
129
+
130
+ | Fase | Mix Recomendado |
131
+ |------|----------------|
132
+ | PROPOSAL | 1 ação + 1 pergunta + 1 sugestão |
133
+ | DESIGN | 2 ações + 1 pergunta/sugestão |
134
+ | TASKS | 3 ações (aprovar/repriorizar/adicionar) |
135
+
136
+ **Template:**
137
+ ```
138
+ PAUSA OBRIGATÓRIA
139
+ {Contexto breve}
140
+ 1. {Emoji} **{Título}** - {Descrição}
141
+ 2. {Emoji} **{Título}** - {Descrição}
142
+ 3. {Emoji} **{Título}** - {Descrição}
143
+ ```
144
+
145
+ ---
146
+
147
+ ## DECISION POINTS
148
+
149
+ ### Regra: NUNCA decida sozinho sobre arquitetura, dependências externas ou estrutura de dados.
150
+
151
+ **Requer aprovação do usuário:**
152
+ - Infraestrutura Azure (recursos, SKUs, tiers, custos)
153
+ - Bibliotecas e Frameworks (NuGet, UI libs, auth providers, SDKs)
154
+ - Padrões Arquiteturais (CQRS vs simples, Repository vs EF direto, etc.)
155
+ - Estrutura de Dados (entidades, relacionamentos, normalização)
156
+
157
+ **Decisões são ENFORCED por validators na FASE 5.** Ao documentar decisão em `decisions.md`, os validators automaticamente ajustam suas regras (ex: "Fluent UI chosen" → blazor-validator valida Fluent patterns; "Hangfire chosen" → blazor-concurrency analyzer ativado).
158
+
159
+ **Decisões automáticas permitidas:**
160
+ - Nomenclatura (seguir standards), estrutura de pastas, imports, formatação, tipos primitivos, validações básicas, padrões já em project/standards/
161
+
162
+ **Template de decisão:**
163
+ ```
164
+ 🤔 DECISÃO TÉCNICA NECESSÁRIA
165
+ Contexto: {por que decidir agora}
166
+
167
+ Opção 1: {Nome} - ✅ {vantagens} | ❌ {desvantagens} | ⚡ {complexidade}
168
+ Opção 2: {Nome} - {vantagens} | ❌ {desvantagens} | ⚡ {complexidade}
169
+
170
+ 💡 Recomendação: {opção} porque {justificativa}
171
+ Qual prefere?
172
+ ```
173
+
174
+ ---
175
+
176
+ ## QUANDO NÃO USAR MORPH
177
+
178
+ | Não usar MORPH | Sempre usar MORPH |
179
+ |----------------|-------------------|
180
+ | Bug fix simples (< 3 arquivos) | Nova feature com UI |
181
+ | Hotfix urgente | Integração com API externa |
182
+ | Ajuste CSS/typo | Novo subsistema/módulo |
183
+ | Atualizar dependência | Mudança de schema de banco |
184
+ | Pergunta sobre código | Autenticação/autorização |
185
+
186
+ > **Regra de Ouro:** ARQUITETURA, DEPENDÊNCIAS EXTERNAS ou ESTRUTURA DE DADOS → Use MORPH. CORREÇÃO, AJUSTE ou OPERAÇÃO → Faça diretamente.
187
+
188
+ Escalação: Se descobrir complexidade maior, `morph-spec state set {feature} workflow full-morph`
189
+
190
+ ---
191
+
192
+ ## INFRASTRUCTURE AS CODE
193
+
194
+ > NUNCA criar recursos Azure manualmente. Tudo via Bicep.
195
+
196
+ | Recurso | Abordagem |
197
+ |---------|-----------|
198
+ | Infra estática (SQL, Storage, Container Apps) | Bicep |
199
+ | Recursos dinâmicos (Fabric, Azure AI) | SDK .NET |
200
+ | CI/CD | YAML + Bicep |
201
+
202
+ Estrutura: `infra/main.bicep` → `infra/modules/*.bicep` + `parameters.{env}.json`
203
+
204
+ ---
205
+
206
+ ## STATE MANAGEMENT
207
+
208
+ ```bash
209
+ morph-spec state init # Inicializar
210
+ morph-spec state set {feature} phase {phase} # Atualizar fase
211
+ morph-spec state set {feature} status {status} # Atualizar status
212
+ morph-spec state add-agent {feature} {agent-id} # Adicionar agente
213
+ morph-spec state mark-output {feature} {type} # Marcar output
214
+ morph-spec state checkpoint {feature} "{nota}" # Registrar checkpoint
215
+ morph-spec state list # Dashboard
216
+ morph-spec state get {feature} # Detalhes
217
+ ```
218
+
219
+ **Quando atualizar:** Criar proposal → phase proposal + mark-output proposal. Iniciar design → phase design + add-agent. Aprovar design → status approved + mark-output spec/contracts. Implementar → phase implement + tasks.total. Completar task → tasks.completed. Finalizar → status done + mark-output recap.
220
+
221
+ ---
222
+
223
+ ## COMANDOS
224
+
225
+ > **npx** para projetos consumidores. **node bin/** apenas para dev do framework.
226
+
227
+ ### User Commands
228
+
229
+ **Slash Commands (o que o usuário digita):**
230
+ | Comando | Descrição |
231
+ |---------|-----------|
232
+ | `/morph-proposal {feature}` | Spec pipeline completo (fases 0-4 com pausas e auto-continuação) |
233
+ | `/morph-apply {feature}` | Implementar (fase 5, valida fases anteriores) |
234
+ | `/morph-status` | Dashboard de progresso |
235
+ | `/morph-archive {feature}` | Arquivar feature concluída |
236
+ | `/morph-infra {action}` | Gerenciar infra Bicep (init, validate, plan, deploy) |
237
+ | `/morph-preflight` | Validação pre-deploy Azure |
238
+ | `/morph-troubleshoot {error}` | Troubleshooting de erros |
239
+
240
+ **CLI (o que o usuário executa no terminal):**
241
+ | Comando | Descrição |
242
+ |---------|-----------|
243
+ | `morph-spec init` | Inicializar MORPH no projeto |
244
+ | `morph-spec update` | Atualizar templates e standards |
245
+ | `morph-spec doctor` | Check de saúde |
246
+
247
+ ### Framework Commands (Claude internal)
248
+
249
+ > Comandos usados pelo Claude automaticamente durante o workflow. Usuário NÃO precisa executar.
250
+
251
+ | Comando | Quando |
252
+ |---------|--------|
253
+ | `morph-spec detect-agents "{text}"` | Detectar agentes na proposta |
254
+ | `morph-spec state <action>` | Gerenciar state.json |
255
+ | `morph-spec task done/start/next` | Gerenciar tasks na implementação |
256
+ | `morph-spec phase advance {feature}` | Avançar entre fases |
257
+ | `morph-spec generate recap/design-system` | Gerar outputs |
258
+ | `morph-spec validate-phase {feature} {phase}` | Validar pré-requisitos |
259
+ | `morph-spec validate/validate-blazor/lint-fluent/...` | Validators |
260
+ | `morph-spec story create/shard/status` | Story-driven development |
261
+
262
+ ### Internal Workflow Skills (auto-invoked by /morph-proposal)
263
+
264
+ | Skill | Fase | Path |
265
+ |-------|------|------|
266
+ | phase-setup | 1 | `.claude/skills/workflows/phase-setup.md` |
267
+ | phase-uiux | 1.5 | `.claude/skills/workflows/phase-uiux.md` |
268
+ | phase-design | 2 | `.claude/skills/workflows/phase-design.md` |
269
+ | phase-clarify | 3 | `.claude/skills/workflows/phase-clarify.md` |
270
+ | phase-tasks | 4 | `.claude/skills/workflows/phase-tasks.md` |
271
+
272
+ ---
273
+
274
+ ## ESTRUTURA DE OUTPUTS
275
+
276
+ ```
277
+ .morph/project/outputs/{feature-name}/
278
+ ├── proposal.md # FASE 0
279
+ ├── ui-design-system.md # FASE 1.5 (se front-end)
280
+ ├── ui-mockups.md # FASE 1.5 (se front-end)
281
+ ├── ui-components.md # FASE 1.5 (se front-end)
282
+ ├── ui-flows.md # FASE 1.5 (se front-end)
283
+ ├── spec.md # FASE 2
284
+ ├── contracts.cs # FASE 2
285
+ ├── tasks.json # FASE 4
286
+ ├── decisions.md # FASE 2+ (acumulativo)
287
+ └── recap.md # FASE 5
288
+ ```
289
+
290
+ ---
291
+
292
+ ## REFERÊNCIAS
293
+
294
+ ### Standards (framework/standards/)
295
+ `coding.md` | `architecture.md` | `azure.md` | `agent-framework-setup.md` | `agent-framework-workflows.md` | `agent-framework-production.md` | `agent-framework-blazor-ui.md` | `passkeys-auth.md` | `vector-search-rag.md` | `dotnet10-migration.md` | `fluent-ui-blazor.md` | `migration-guide.md`
296
+
297
+ ### Templates
298
+ - `content/.morph/templates/` - Source (NPM package)
299
+ - `.morph/templates/` - No projeto consumidor (editável, copiado pelo `init`)
300
+
301
+ ### Project Context
302
+ `.morph/project/context/README.md` | `.morph/project/standards/inferred.md` | `.morph/project/standards/*.md` | `.morph/config.json`
303
+
304
+ ### Skills
305
+ - `workflows/` - phase-setup, phase-uiux, phase-design, phase-clarify, phase-tasks, morph-replicate
306
+ - `checklists/` - morph-checklist, simulation-checklist, code-review
307
+ - `integrations/` - asaas-financial, clerk-auth, azure-identity, resend-email
308
+ - `specialists/` - dotnet-senior, code-analyzer, ui-ux-designer, ai-system-architect, ef-modeler, hangfire-orchestrator, testing-specialist, etc.
309
+ - `stacks/` - dotnet-blazor, dotnet-nextjs
310
+ - `infra/` - bicep-architect, devops-engineer, container-specialist
311
+
312
+ ---
313
+
314
+ *MORPH-SPEC by Polymorphism Tech*