@polymorphism-tech/morph-spec 2.4.0 → 3.0.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 (218) hide show
  1. package/CLAUDE.md +158 -26
  2. package/LICENSE +72 -72
  3. package/bin/detect-agents.js +225 -225
  4. package/bin/morph-spec.js +8 -0
  5. package/bin/render-template.js +302 -302
  6. package/bin/semantic-detect-agents.js +246 -246
  7. package/bin/validate-agents-skills.js +251 -251
  8. package/bin/validate-agents.js +69 -69
  9. package/bin/validate-phase.js +263 -263
  10. package/content/.azure/README.md +293 -293
  11. package/content/.azure/docs/azure-devops-setup.md +454 -454
  12. package/content/.azure/docs/branch-strategy.md +398 -398
  13. package/content/.azure/docs/local-development.md +515 -515
  14. package/content/.azure/pipelines/pipeline-variables.yml +34 -34
  15. package/content/.azure/pipelines/prod-pipeline.yml +319 -319
  16. package/content/.azure/pipelines/staging-pipeline.yml +234 -234
  17. package/content/.azure/pipelines/templates/build-dotnet.yml +75 -75
  18. package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  19. package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  20. package/content/.azure/pipelines/templates/infra-deploy.yml +90 -90
  21. package/content/.claude/commands/morph-archive.md +79 -79
  22. package/content/.claude/commands/morph-deploy.md +529 -0
  23. package/content/.claude/commands/morph-infra.md +209 -209
  24. package/content/.claude/commands/morph-preflight.md +227 -227
  25. package/content/.claude/commands/morph-troubleshoot.md +122 -122
  26. package/content/.claude/settings.local.json +15 -15
  27. package/content/.claude/skills/infra/azure-deploy-specialist.md +699 -0
  28. package/content/.claude/skills/level-0-meta/README.md +7 -0
  29. package/content/.claude/skills/{checklists → level-0-meta}/morph-checklist.md +117 -117
  30. package/content/.claude/skills/level-1-workflows/README.md +7 -0
  31. package/content/.claude/skills/{workflows → level-1-workflows}/morph-replicate.md +213 -213
  32. package/content/.claude/skills/{workflows → level-1-workflows}/phase-clarify.md +131 -131
  33. package/content/.claude/skills/{workflows → level-1-workflows}/phase-design.md +213 -205
  34. package/content/.claude/skills/{workflows → level-1-workflows}/phase-setup.md +106 -92
  35. package/content/.claude/skills/{workflows → level-1-workflows}/phase-tasks.md +164 -164
  36. package/content/.claude/skills/{workflows → level-1-workflows}/phase-uiux.md +169 -138
  37. package/content/.claude/skills/level-2-domains/README.md +14 -0
  38. package/content/.claude/skills/{specialists → level-2-domains/quality}/testing-specialist.md +126 -126
  39. package/content/.claude/skills/level-3-technologies/README.md +7 -0
  40. package/content/.claude/skills/level-4-patterns/README.md +7 -0
  41. package/content/.claude/skills/specialists/prompt-engineer.md +189 -0
  42. package/content/.claude/skills/specialists/seo-growth-hacker.md +320 -0
  43. package/content/.morph/.morphversion +5 -5
  44. package/content/.morph/archive/.gitkeep +25 -25
  45. package/content/.morph/config/agents.json +742 -358
  46. package/content/.morph/config/config.template.json +33 -0
  47. package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  48. package/content/.morph/docs/workflows/enforcement-pipeline.md +668 -0
  49. package/content/.morph/examples/api-nextjs/README.md +241 -241
  50. package/content/.morph/examples/api-nextjs/contracts.ts +307 -307
  51. package/content/.morph/examples/api-nextjs/spec.md +399 -399
  52. package/content/.morph/examples/api-nextjs/tasks.md +168 -168
  53. package/content/.morph/examples/micro-saas/README.md +125 -125
  54. package/content/.morph/examples/micro-saas/contracts.cs +358 -358
  55. package/content/.morph/examples/micro-saas/decisions.md +246 -246
  56. package/content/.morph/examples/micro-saas/spec.md +236 -236
  57. package/content/.morph/examples/micro-saas/tasks.md +150 -150
  58. package/content/.morph/examples/multi-agent/README.md +309 -309
  59. package/content/.morph/examples/multi-agent/contracts.cs +433 -433
  60. package/content/.morph/examples/multi-agent/spec.md +479 -479
  61. package/content/.morph/examples/multi-agent/tasks.md +185 -185
  62. package/content/.morph/examples/scheduled-reports/decisions.md +158 -158
  63. package/content/.morph/examples/scheduled-reports/proposal.md +95 -95
  64. package/content/.morph/examples/scheduled-reports/spec.md +267 -267
  65. package/content/.morph/examples/state-v3.json +188 -188
  66. package/content/.morph/features/.gitkeep +25 -25
  67. package/content/.morph/hooks/README.md +158 -0
  68. package/content/.morph/hooks/pre-commit-all.sh +48 -48
  69. package/content/.morph/hooks/pre-commit-specs.sh +49 -49
  70. package/content/.morph/hooks/pre-commit-tests.sh +60 -60
  71. package/content/.morph/hooks/task-completed.js +73 -0
  72. package/content/.morph/hooks/teammate-idle.js +68 -0
  73. package/content/.morph/project.md +160 -160
  74. package/content/.morph/schemas/agent.schema.json +296 -296
  75. package/content/.morph/schemas/tasks.schema.json +220 -220
  76. package/content/.morph/specs/.gitkeep +20 -20
  77. package/content/.morph/standards/agent-teams-workflow.md +474 -0
  78. package/content/.morph/standards/coding.md +377 -377
  79. package/content/.morph/standards/fluent-ui-setup.md +590 -590
  80. package/content/.morph/standards/migration-guide.md +514 -514
  81. package/content/.morph/standards/passkeys-auth.md +423 -423
  82. package/content/.morph/standards/vector-search-rag.md +536 -536
  83. package/content/.morph/state.json +17 -17
  84. package/content/.morph/templates/CONTEXT-FEATURE.md +276 -0
  85. package/content/.morph/templates/CONTEXT.md +170 -0
  86. package/content/.morph/templates/FluentDesignTheme.cs +149 -149
  87. package/content/.morph/templates/MudTheme.cs +281 -281
  88. package/content/.morph/templates/clarify-questions.md +159 -159
  89. package/content/.morph/templates/component.razor +239 -239
  90. package/content/.morph/templates/contracts/Commands.cs +74 -74
  91. package/content/.morph/templates/contracts/Entities.cs +25 -25
  92. package/content/.morph/templates/contracts/Queries.cs +74 -74
  93. package/content/.morph/templates/contracts/README.md +74 -74
  94. package/content/.morph/templates/contracts.cs +217 -217
  95. package/content/.morph/templates/design-system.css +226 -226
  96. package/content/.morph/templates/infra/.dockerignore.example +89 -89
  97. package/content/.morph/templates/infra/Dockerfile.example +82 -82
  98. package/content/.morph/templates/infra/README.md +286 -286
  99. package/content/.morph/templates/infra/app-insights.bicep +63 -63
  100. package/content/.morph/templates/infra/app-service.bicep +164 -164
  101. package/content/.morph/templates/infra/azure-pipelines-deploy.yml +480 -0
  102. package/content/.morph/templates/infra/container-app-env.bicep +49 -49
  103. package/content/.morph/templates/infra/container-app.bicep +156 -156
  104. package/content/.morph/templates/infra/deploy-checklist.md +426 -426
  105. package/content/.morph/templates/infra/deploy.ps1 +229 -229
  106. package/content/.morph/templates/infra/deploy.sh +208 -208
  107. package/content/.morph/templates/infra/key-vault.bicep +91 -91
  108. package/content/.morph/templates/infra/main.bicep +189 -189
  109. package/content/.morph/templates/infra/parameters.dev.json +29 -29
  110. package/content/.morph/templates/infra/parameters.prod.json +29 -29
  111. package/content/.morph/templates/infra/parameters.staging.json +29 -29
  112. package/content/.morph/templates/infra/sql-database.bicep +103 -103
  113. package/content/.morph/templates/infra/storage.bicep +106 -106
  114. package/content/.morph/templates/integrations/asaas-client.cs +387 -387
  115. package/content/.morph/templates/integrations/asaas-webhook.cs +351 -351
  116. package/content/.morph/templates/integrations/azure-identity-config.cs +288 -288
  117. package/content/.morph/templates/integrations/clerk-config.cs +258 -258
  118. package/content/.morph/templates/job.cs +171 -171
  119. package/content/.morph/templates/migration.cs +83 -83
  120. package/content/.morph/templates/repository.cs +141 -141
  121. package/content/.morph/templates/saas/subscription.cs +347 -347
  122. package/content/.morph/templates/saas/tenant.cs +338 -338
  123. package/content/.morph/templates/service.cs +139 -139
  124. package/content/.morph/templates/sprint-status.yaml +68 -68
  125. package/content/.morph/templates/story.md +143 -143
  126. package/content/.morph/templates/test.cs +239 -239
  127. package/content/.morph/templates/ui-design-system.md +286 -286
  128. package/content/.morph/templates/ui-flows.md +336 -336
  129. package/content/.morph/templates/ui-mockups.md +133 -133
  130. package/content/.morph/test-infra/example.bicep +59 -59
  131. package/content/README.md +79 -79
  132. package/detectors/config-detector.js +223 -223
  133. package/detectors/conversation-analyzer.js +163 -163
  134. package/detectors/index.js +84 -84
  135. package/detectors/standards-generator.js +275 -275
  136. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
  137. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
  138. package/docs/api/scripts/collapse.js +38 -38
  139. package/docs/api/scripts/commonNav.js +28 -28
  140. package/docs/api/scripts/linenumber.js +25 -25
  141. package/docs/api/scripts/nav.js +12 -12
  142. package/docs/api/scripts/polyfill.js +3 -3
  143. package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
  144. package/docs/api/scripts/prettify/lang-css.js +2 -2
  145. package/docs/api/scripts/prettify/prettify.js +28 -28
  146. package/docs/api/scripts/search.js +98 -98
  147. package/docs/api/styles/jsdoc.css +776 -776
  148. package/docs/api/styles/prettify.css +80 -80
  149. package/docs/examples.md +328 -328
  150. package/docs/templates.md +418 -418
  151. package/package.json +1 -1
  152. package/scripts/postinstall.js +132 -132
  153. package/src/commands/advance-phase.js +83 -0
  154. package/src/commands/analyze-blazor-concurrency.js +193 -193
  155. package/src/commands/create-story.js +351 -351
  156. package/src/commands/deploy.js +780 -0
  157. package/src/commands/detect-agents.js +34 -6
  158. package/src/commands/detect.js +104 -104
  159. package/src/commands/generate-context.js +40 -0
  160. package/src/commands/generate.js +149 -149
  161. package/src/commands/lint-fluent.js +352 -352
  162. package/src/commands/rollback-phase.js +185 -185
  163. package/src/commands/session-summary.js +291 -291
  164. package/src/commands/shard-spec.js +224 -224
  165. package/src/commands/sprint-status.js +250 -250
  166. package/src/commands/state.js +333 -333
  167. package/src/commands/sync.js +167 -167
  168. package/src/commands/troubleshoot.js +222 -222
  169. package/src/commands/validate-blazor-state.js +210 -210
  170. package/src/commands/validate-blazor.js +156 -156
  171. package/src/commands/validate-css.js +84 -84
  172. package/src/commands/validate-phase.js +221 -221
  173. package/src/lib/blazor-concurrency-analyzer.js +288 -288
  174. package/src/lib/blazor-state-validator.js +291 -291
  175. package/src/lib/blazor-validator.js +374 -374
  176. package/src/lib/context-generator.js +513 -0
  177. package/src/lib/css-validator.js +352 -352
  178. package/src/lib/design-system-detector.js +187 -0
  179. package/src/lib/design-system-generator.js +298 -298
  180. package/src/lib/design-system-scaffolder.js +299 -0
  181. package/src/lib/hook-executor.js +256 -0
  182. package/src/lib/learning-system.js +520 -520
  183. package/src/lib/mockup-generator.js +366 -366
  184. package/src/lib/spec-validator.js +258 -0
  185. package/src/lib/standards-context-injector.js +287 -0
  186. package/src/lib/team-orchestrator.js +322 -0
  187. package/src/lib/troubleshoot-grep.js +194 -194
  188. package/src/lib/troubleshoot-index.js +144 -144
  189. package/src/lib/ui-detector.js +350 -350
  190. package/src/lib/validation-runner.js +65 -13
  191. package/src/lib/validators/architecture-validator.js +387 -387
  192. package/src/lib/validators/design-system-validator.js +231 -0
  193. package/src/lib/validators/package-validator.js +360 -360
  194. package/src/lib/validators/ui-contrast-validator.js +422 -422
  195. package/src/utils/file-copier.js +9 -1
  196. package/src/utils/logger.js +32 -32
  197. package/src/utils/version-checker.js +175 -175
  198. /package/content/.claude/skills/{checklists → level-0-meta}/code-review.md +0 -0
  199. /package/content/.claude/skills/{checklists → level-0-meta}/simulation-checklist.md +0 -0
  200. /package/content/.claude/skills/{specialists → level-2-domains/ai-agents}/ai-system-architect.md +0 -0
  201. /package/content/.claude/skills/{specialists → level-2-domains/architecture}/po-pm-advisor.md +0 -0
  202. /package/content/.claude/skills/{specialists → level-2-domains/architecture}/standards-architect.md +0 -0
  203. /package/content/.claude/skills/{specialists → level-2-domains/backend}/dotnet-senior.md +0 -0
  204. /package/content/.claude/skills/{specialists → level-2-domains/backend}/ef-modeler.md +0 -0
  205. /package/content/.claude/skills/{specialists → level-2-domains/backend}/hangfire-orchestrator.md +0 -0
  206. /package/content/.claude/skills/{specialists → level-2-domains/backend}/ms-agent-expert.md +0 -0
  207. /package/content/.claude/skills/{stacks/dotnet-blazor.md → level-2-domains/frontend/blazor-builder.md} +0 -0
  208. /package/content/.claude/skills/{stacks/dotnet-nextjs.md → level-2-domains/frontend/nextjs-expert.md} +0 -0
  209. /package/content/.claude/skills/{specialists → level-2-domains/frontend}/ui-ux-designer.md +0 -0
  210. /package/content/.claude/skills/{specialists → level-2-domains/infrastructure}/azure-architect.md +0 -0
  211. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/bicep-architect.md +0 -0
  212. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/container-specialist.md +0 -0
  213. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/devops-engineer.md +0 -0
  214. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/asaas-financial.md +0 -0
  215. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/azure-identity.md +0 -0
  216. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/clerk-auth.md +0 -0
  217. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/resend-email.md +0 -0
  218. /package/content/.claude/skills/{specialists → level-2-domains/quality}/code-analyzer.md +0 -0
@@ -1,164 +1,164 @@
1
- # MORPH Tasks - FASE 4
2
-
3
- > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
4
-
5
- Quebre a especificação em tasks executáveis, defina ordem de execução e estabeleça checkpoints.
6
-
7
- ## Pré-requisitos
8
-
9
- - [ ] FASE 3 (Clarify) concluída
10
- - [ ] `spec.md` atualizado com clarificações
11
- - [ ] Todos os edge cases documentados
12
-
13
- ## Workflow
14
-
15
- ### Passo 1: Analisar Spec
16
-
17
- Leia `.morph/project/outputs/{feature}/spec.md` e identifique:
18
-
19
- 1. **Requisitos funcionais** (FR001, FR002, ...)
20
- 2. **Componentes técnicos** (Entities, Services, Controllers, Pages)
21
- 3. **Infraestrutura** (Bicep, migrations, configs)
22
- 4. **Testes** (Unit tests, integration tests)
23
-
24
- ### Passo 2: Quebrar em Tasks
25
-
26
- Crie tasks no formato **T{NNN}** seguindo ordem lógica de implementação.
27
-
28
- #### 2.1. Estrutura de Task
29
-
30
- ```json
31
- {
32
- "id": "T001",
33
- "title": "Criar Entity {Nome}",
34
- "description": "Implementar entity {Nome} com propriedades X, Y, Z seguindo padrões EF Core",
35
- "category": "domain",
36
- "dependencies": [],
37
- "estimatedMinutes": 30,
38
- "status": "pending",
39
- "specSections": ["## Domain Model", "## Business Rules"],
40
- "contractInterfaces": ["I{Nome}Repository"],
41
- "files": [
42
- "Domain/Entities/{Nome}.cs",
43
- "Infrastructure/Data/Configurations/{Nome}Configuration.cs"
44
- ]
45
- }
46
- ```
47
-
48
- #### 2.2. Categorias de Tasks
49
-
50
- | Categoria | Descrição | Exemplos |
51
- |-----------|-----------|----------|
52
- | **domain** | Entities, Value Objects, Enums | Entity, DomainException |
53
- | **application** | Services, DTOs, Interfaces | Service, Validator, Mapper |
54
- | **infrastructure** | DbContext, Repositories, External APIs | EF Config, Repository impl |
55
- | **presentation** | Controllers, Pages, Components | API endpoint, Blazor page |
56
- | **tests** | Unit tests, Integration tests | Service tests, API tests |
57
- | **infra** | Bicep, Migrations, Scripts | Azure resources, DB migration |
58
- | **docs** | README, API docs, Swagger | OpenAPI spec, README update |
59
-
60
- #### 2.3. Ordem de Implementação
61
-
62
- **Bottom-up approach:**
63
- ```
64
- 1. Domain (Entities, Enums, Value Objects)
65
-
66
- 2. Infrastructure (Repositories, DbContext configs)
67
-
68
- 3. Application (Services, DTOs, Business logic)
69
-
70
- 4. Presentation (Controllers, Pages, Components)
71
-
72
- 5. Tests (Unit → Integration)
73
-
74
- 6. Infra (Bicep, Migrations, Deploy scripts)
75
-
76
- 7. Docs (README, Swagger, Comments)
77
- ```
78
-
79
- ### Passo 3: Definir Dependências
80
-
81
- Para cada task, especifique dependências:
82
-
83
- ```json
84
- {
85
- "id": "T005",
86
- "title": "Criar {Nome}Service",
87
- "dependencies": ["T001", "T002"],
88
- "status": "pending"
89
- }
90
- ```
91
-
92
- **Regra:** Task só pode ser executada quando todas as dependências estão `completed`.
93
-
94
- ### Passo 4: Estabelecer Checkpoints
95
-
96
- Defina checkpoints a cada **3 tasks** ou **marcos significativos**:
97
-
98
- ```json
99
- {
100
- "id": "CHECKPOINT_001",
101
- "title": "Domain Layer Completo",
102
- "afterTasks": ["T001", "T002", "T003"],
103
- "validations": [
104
- "Todas as entities criadas",
105
- "Migrations aplicadas",
106
- "Testes de domain passando"
107
- ]
108
- }
109
- ```
110
-
111
- ### Passo 5: Estimar Esforço
112
-
113
- Para cada task, estime tempo em minutos:
114
-
115
- | Complexidade | Tempo Estimado |
116
- |--------------|----------------|
117
- | Trivial (CRUD básico) | 15-30 min |
118
- | Simples (Service, Controller) | 30-60 min |
119
- | Média (Business logic, validações) | 60-120 min |
120
- | Complexa (Integrações, AI) | 120-240 min |
121
-
122
- ### Passo 6: Gerar `tasks.json`
123
-
124
- Crie `.morph/project/outputs/{feature}/tasks.json` com a estrutura completa de tasks, checkpoints e estimativas.
125
-
126
- ### Passo 7: Incluir Tasks de IaC (se necessário)
127
-
128
- Se houver recursos Azure, adicionar tasks de Bicep e migrations.
129
-
130
- ### Passo 8: Atualizar State
131
-
132
- ```bash
133
- npx morph-spec state set {feature-name} phase tasks
134
- npx morph-spec state set {feature-name} tasks.total {N}
135
- npx morph-spec state mark-output {feature-name} tasks
136
- ```
137
-
138
- ## Outputs Gerados
139
-
140
- - `.morph/project/outputs/{feature}/tasks.json` - Breakdown completo de tasks
141
-
142
- ## PAUSA OBRIGATÓRIA
143
-
144
- Apresente ao usuário 3 ações sugeridas:
145
-
146
- 1. **Aprovar breakdown e iniciar implementação**
147
- 2. **Repriorizar tasks** - Mudar ordem de execução
148
- 3. **Adicionar/remover tasks** - Ajustar escopo
149
-
150
- ## Critérios de Avanço
151
-
152
- - [x] `tasks.json` criado com todas as tasks
153
- - [x] Tasks categorizadas corretamente
154
- - [x] Dependências mapeadas
155
- - [x] Checkpoints definidos (a cada 3 tasks)
156
- - [x] Esforço estimado por task
157
- - [x] Ordem de execução clara
158
- - [x] Tasks de IaC incluídas (se aplicável)
159
- - [x] State atualizado com total de tasks
160
- - [x] Usuário aprovou breakdown
161
-
162
- ---
163
-
164
- Após aprovação: "Planejamento completo! Execute `/morph-apply {feature}` para iniciar implementação."
1
+ # MORPH Tasks - FASE 4
2
+
3
+ > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
4
+
5
+ Quebre a especificação em tasks executáveis, defina ordem de execução e estabeleça checkpoints.
6
+
7
+ ## Pré-requisitos
8
+
9
+ - [ ] FASE 3 (Clarify) concluída
10
+ - [ ] `spec.md` atualizado com clarificações
11
+ - [ ] Todos os edge cases documentados
12
+
13
+ ## Workflow
14
+
15
+ ### Passo 1: Analisar Spec
16
+
17
+ Leia `.morph/project/outputs/{feature}/spec.md` e identifique:
18
+
19
+ 1. **Requisitos funcionais** (FR001, FR002, ...)
20
+ 2. **Componentes técnicos** (Entities, Services, Controllers, Pages)
21
+ 3. **Infraestrutura** (Bicep, migrations, configs)
22
+ 4. **Testes** (Unit tests, integration tests)
23
+
24
+ ### Passo 2: Quebrar em Tasks
25
+
26
+ Crie tasks no formato **T{NNN}** seguindo ordem lógica de implementação.
27
+
28
+ #### 2.1. Estrutura de Task
29
+
30
+ ```json
31
+ {
32
+ "id": "T001",
33
+ "title": "Criar Entity {Nome}",
34
+ "description": "Implementar entity {Nome} com propriedades X, Y, Z seguindo padrões EF Core",
35
+ "category": "domain",
36
+ "dependencies": [],
37
+ "estimatedMinutes": 30,
38
+ "status": "pending",
39
+ "specSections": ["## Domain Model", "## Business Rules"],
40
+ "contractInterfaces": ["I{Nome}Repository"],
41
+ "files": [
42
+ "Domain/Entities/{Nome}.cs",
43
+ "Infrastructure/Data/Configurations/{Nome}Configuration.cs"
44
+ ]
45
+ }
46
+ ```
47
+
48
+ #### 2.2. Categorias de Tasks
49
+
50
+ | Categoria | Descrição | Exemplos |
51
+ |-----------|-----------|----------|
52
+ | **domain** | Entities, Value Objects, Enums | Entity, DomainException |
53
+ | **application** | Services, DTOs, Interfaces | Service, Validator, Mapper |
54
+ | **infrastructure** | DbContext, Repositories, External APIs | EF Config, Repository impl |
55
+ | **presentation** | Controllers, Pages, Components | API endpoint, Blazor page |
56
+ | **tests** | Unit tests, Integration tests | Service tests, API tests |
57
+ | **infra** | Bicep, Migrations, Scripts | Azure resources, DB migration |
58
+ | **docs** | README, API docs, Swagger | OpenAPI spec, README update |
59
+
60
+ #### 2.3. Ordem de Implementação
61
+
62
+ **Bottom-up approach:**
63
+ ```
64
+ 1. Domain (Entities, Enums, Value Objects)
65
+
66
+ 2. Infrastructure (Repositories, DbContext configs)
67
+
68
+ 3. Application (Services, DTOs, Business logic)
69
+
70
+ 4. Presentation (Controllers, Pages, Components)
71
+
72
+ 5. Tests (Unit → Integration)
73
+
74
+ 6. Infra (Bicep, Migrations, Deploy scripts)
75
+
76
+ 7. Docs (README, Swagger, Comments)
77
+ ```
78
+
79
+ ### Passo 3: Definir Dependências
80
+
81
+ Para cada task, especifique dependências:
82
+
83
+ ```json
84
+ {
85
+ "id": "T005",
86
+ "title": "Criar {Nome}Service",
87
+ "dependencies": ["T001", "T002"],
88
+ "status": "pending"
89
+ }
90
+ ```
91
+
92
+ **Regra:** Task só pode ser executada quando todas as dependências estão `completed`.
93
+
94
+ ### Passo 4: Estabelecer Checkpoints
95
+
96
+ Defina checkpoints a cada **3 tasks** ou **marcos significativos**:
97
+
98
+ ```json
99
+ {
100
+ "id": "CHECKPOINT_001",
101
+ "title": "Domain Layer Completo",
102
+ "afterTasks": ["T001", "T002", "T003"],
103
+ "validations": [
104
+ "Todas as entities criadas",
105
+ "Migrations aplicadas",
106
+ "Testes de domain passando"
107
+ ]
108
+ }
109
+ ```
110
+
111
+ ### Passo 5: Estimar Esforço
112
+
113
+ Para cada task, estime tempo em minutos:
114
+
115
+ | Complexidade | Tempo Estimado |
116
+ |--------------|----------------|
117
+ | Trivial (CRUD básico) | 15-30 min |
118
+ | Simples (Service, Controller) | 30-60 min |
119
+ | Média (Business logic, validações) | 60-120 min |
120
+ | Complexa (Integrações, AI) | 120-240 min |
121
+
122
+ ### Passo 6: Gerar `tasks.json`
123
+
124
+ Crie `.morph/project/outputs/{feature}/tasks.json` com a estrutura completa de tasks, checkpoints e estimativas.
125
+
126
+ ### Passo 7: Incluir Tasks de IaC (se necessário)
127
+
128
+ Se houver recursos Azure, adicionar tasks de Bicep e migrations.
129
+
130
+ ### Passo 8: Atualizar State
131
+
132
+ ```bash
133
+ npx morph-spec state set {feature-name} phase tasks
134
+ npx morph-spec state set {feature-name} tasks.total {N}
135
+ npx morph-spec state mark-output {feature-name} tasks
136
+ ```
137
+
138
+ ## Outputs Gerados
139
+
140
+ - `.morph/project/outputs/{feature}/tasks.json` - Breakdown completo de tasks
141
+
142
+ ## PAUSA OBRIGATÓRIA
143
+
144
+ Apresente ao usuário 3 ações sugeridas:
145
+
146
+ 1. **Aprovar breakdown e iniciar implementação**
147
+ 2. **Repriorizar tasks** - Mudar ordem de execução
148
+ 3. **Adicionar/remover tasks** - Ajustar escopo
149
+
150
+ ## Critérios de Avanço
151
+
152
+ - [x] `tasks.json` criado com todas as tasks
153
+ - [x] Tasks categorizadas corretamente
154
+ - [x] Dependências mapeadas
155
+ - [x] Checkpoints definidos (a cada 3 tasks)
156
+ - [x] Esforço estimado por task
157
+ - [x] Ordem de execução clara
158
+ - [x] Tasks de IaC incluídas (se aplicável)
159
+ - [x] State atualizado com total de tasks
160
+ - [x] Usuário aprovou breakdown
161
+
162
+ ---
163
+
164
+ Após aprovação: "Planejamento completo! Execute `/morph-apply {feature}` para iniciar implementação."
@@ -1,138 +1,169 @@
1
- # MORPH UI/UX Design - FASE 1.5
2
-
3
- > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
4
-
5
- Fase condicional para features com front-end. Coleta requisitos de UI/UX, gera wireframes, specs de componentes e fluxos de usuário.
6
-
7
- ## Pré-requisitos
8
-
9
- - [ ] FASE 1 (Setup) concluída
10
- - [ ] Feature tem keywords de UI detectadas (blazor, ui, component, page, dashboard, wizard, form, chart)
11
- - [ ] `uiux-designer` agent ativado
12
-
13
- ## Workflow
14
-
15
- ### Passo 1: Detectar Se Fase É Necessária
16
-
17
- Verifique se agentes ativos incluem `uiux-designer`:
18
-
19
- ```bash
20
- npx morph-spec state get {feature-name}
21
- ```
22
-
23
- Se `uiux-designer` NÃO estiver nos `activeAgents`, pule esta fase e continue para FASE 2 (Design).
24
-
25
- ### Passo 2: Coletar Input do Usuário
26
-
27
- **SEMPRE perguntar ao usuário PRIMEIRO:**
28
-
29
- 1. **Layout e estilo**:
30
- - Você tem alguma ideia de layout em mente?
31
- - Tem alguma referência visual? (sites, apps, screenshots)
32
- - Como imagina o fluxo do usuário?
33
-
34
- 2. **Componentes e interações**:
35
- - Quais os principais componentes desta tela/página?
36
- - Quais estados precisam ser considerados? (loading, error, empty, success)
37
-
38
- 3. **Imagens de referência**:
39
- - Tem imagens de exemplo que eu possa analisar?
40
- - Se SIM: use Read tool para ler screenshots e extrair padrões
41
-
42
- ### Passo 3: Decidir Biblioteca UI
43
-
44
- Escolha entre **Fluent UI Blazor** (recomendado para AI-first) ou **MudBlazor** (componentes complexos):
45
-
46
- **Critérios:**
47
- - Fluent UI: Para dashboards, forms simples, AI components, Microsoft design language
48
- - MudBlazor: Para data grids avançadas, charts complexos, material design
49
-
50
- **Documente a decisão em `decisions.md`.**
51
-
52
- ### Passo 4: Gerar Deliverables
53
-
54
- Crie os seguintes arquivos em `.morph/project/outputs/{feature}/`:
55
-
56
- #### 4.1. `ui-design-system.md`
57
-
58
- Design system com:
59
- - Paleta de cores (primary, secondary, accent, semantic)
60
- - Tipografia (heading scales, body text, code)
61
- - Spacing e layout (grid, margins, paddings)
62
- - Componentes base (buttons, inputs, cards)
63
-
64
- #### 4.2. `ui-mockups.md`
65
-
66
- Wireframes ASCII + descrições:
67
- - Layout geral de cada tela/página
68
- - Posicionamento de componentes
69
- - Responsividade (desktop, tablet, mobile)
70
- - Estados (loading, error, empty, success)
71
-
72
- #### 4.3. `ui-components.md`
73
-
74
- Specs técnicas de componentes Fluent UI/MudBlazor:
75
- - Componente a usar (FluentButton, MudDataGrid, etc.)
76
- - Props e configurações
77
- - Eventos e bindings
78
- - Validações e estados
79
-
80
- #### 4.4. `ui-flows.md`
81
-
82
- Fluxos de usuário completos:
83
- - User stories
84
- - Diagramas de fluxo (texto/ASCII)
85
- - Edge cases (o que acontece se...?)
86
- - Validações e feedback
87
-
88
- ### Passo 5: Validar Acessibilidade e Responsividade
89
-
90
- Documente nos arquivos UI:
91
- - **WCAG 2.1 Level AA** compliance
92
- - Contraste de cores adequado
93
- - Labels acessíveis para screen readers
94
- - Navegação por teclado
95
- - **Responsive breakpoints**
96
- - Desktop (>1200px)
97
- - Tablet (768px - 1199px)
98
- - Mobile (<768px)
99
-
100
- ### Passo 6: Atualizar State
101
-
102
- ```bash
103
- npx morph-spec state set {feature-name} phase uiux-design
104
- npx morph-spec state mark-output {feature-name} ui-design-system
105
- npx morph-spec state mark-output {feature-name} ui-mockups
106
- npx morph-spec state mark-output {feature-name} ui-components
107
- npx morph-spec state mark-output {feature-name} ui-flows
108
- ```
109
-
110
- ## Outputs Gerados
111
-
112
- - `.morph/project/outputs/{feature}/ui-design-system.md`
113
- - `.morph/project/outputs/{feature}/ui-mockups.md`
114
- - `.morph/project/outputs/{feature}/ui-components.md`
115
- - `.morph/project/outputs/{feature}/ui-flows.md`
116
- - `.morph/project/outputs/{feature}/decisions.md` (atualizado com ADR UI library)
117
-
118
- ## PAUSA OBRIGATÓRIA
119
-
120
- Apresente ao usuário 3 ações sugeridas:
121
-
122
- 1. **Aprovar UI/UX e prosseguir para design técnico**
123
- 2. **Ajustar wireframes/componentes de telas específicas**
124
- 3. **Revisar biblioteca UI escolhida (Fluent UI / MudBlazor)**
125
-
126
- ## Critérios de Avanço
127
-
128
- - [x] Input do usuário coletado (layout, referências)
129
- - [x] Biblioteca UI escolhida e justificada (ADR)
130
- - [x] 4 deliverables criados (design-system, mockups, components, flows)
131
- - [x] Acessibilidade WCAG 2.1 documentada
132
- - [x] Responsividade especificada
133
- - [x] State atualizado
134
- - [x] Usuário aprovou UI/UX
135
-
136
- ---
137
-
138
- Continuar automaticamente para FASE 2 (Design) após aprovação.
1
+ # MORPH UI/UX Design - FASE 1.5
2
+
3
+ > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
4
+
5
+ Fase condicional para features com front-end. Coleta requisitos de UI/UX, gera wireframes, specs de componentes e fluxos de usuário.
6
+
7
+ ## Pré-requisitos
8
+
9
+ - [ ] FASE 1 (Setup) concluída
10
+ - [ ] Feature tem keywords de UI detectadas (blazor, ui, component, page, dashboard, wizard, form, chart)
11
+ - [ ] `uiux-designer` agent ativado
12
+
13
+ ## Workflow
14
+
15
+ ### Passo 0: Verificar Design System Existe
16
+
17
+ **CRITICAL:** Antes de iniciar a FASE UI/UX, verifique se um design system existe:
18
+
19
+ ```bash
20
+ npx morph-spec detect-agents "{feature description}"
21
+ ```
22
+
23
+ Se nenhum design system for detectado (verificar output):
24
+
25
+ 1. **Opção A - Scaffold automático:**
26
+ - O sistema criará automaticamente um design system ao avançar para implementação
27
+ - Você pode gerar manualmente agora: `npx morph-spec generate design-system`
28
+
29
+ 2. **Opção B - Criar manualmente:**
30
+ - Crie `.morph/project/design-system.md` (project-level, compartilhado)
31
+ - Ou `.morph/project/outputs/{feature}/ui-design-system.md` (feature-specific)
32
+
33
+ 3. **Opção C - Scan existing CSS:**
34
+ - Se o projeto já tem CSS com variáveis: `npx morph-spec generate design-system --scan`
35
+
36
+ **⚠️ IMPORTANTE:**
37
+ - Design system é **obrigatório** para features UI
38
+ - Gate automático bloqueará implementação (FASE 5) se design system não existir
39
+ - Melhor criar agora para garantir consistência visual
40
+
41
+ ### Passo 1: Detectar Se Fase É Necessária
42
+
43
+ Verifique se agentes ativos incluem `uiux-designer`:
44
+
45
+ ```bash
46
+ npx morph-spec state get {feature-name}
47
+ ```
48
+
49
+ Se `uiux-designer` NÃO estiver nos `activeAgents`, pule esta fase e continue para FASE 2 (Design).
50
+
51
+ ### Passo 2: Coletar Input do Usuário
52
+
53
+ **SEMPRE perguntar ao usuário PRIMEIRO:**
54
+
55
+ 1. **Layout e estilo**:
56
+ - Você tem alguma ideia de layout em mente?
57
+ - Tem alguma referência visual? (sites, apps, screenshots)
58
+ - Como imagina o fluxo do usuário?
59
+
60
+ 2. **Componentes e interações**:
61
+ - Quais os principais componentes desta tela/página?
62
+ - Quais estados precisam ser considerados? (loading, error, empty, success)
63
+
64
+ 3. **Imagens de referência**:
65
+ - Tem imagens de exemplo que eu possa analisar?
66
+ - Se SIM: use Read tool para ler screenshots e extrair padrões
67
+
68
+ ### Passo 3: Decidir Biblioteca UI
69
+
70
+ Escolha entre **Fluent UI Blazor** (recomendado para AI-first) ou **MudBlazor** (componentes complexos):
71
+
72
+ **Critérios:**
73
+ - Fluent UI: Para dashboards, forms simples, AI components, Microsoft design language
74
+ - MudBlazor: Para data grids avançadas, charts complexos, material design
75
+
76
+ **Documente a decisão em `decisions.md`.**
77
+
78
+ ### Passo 4: Gerar Deliverables
79
+
80
+ Crie os seguintes arquivos em `.morph/project/outputs/{feature}/`:
81
+
82
+ #### 4.1. `ui-design-system.md`
83
+
84
+ **Se design system project-level existe (`.morph/project/design-system.md`):**
85
+ - Referencie-o nos specs: "Uses project design system at .morph/project/design-system.md"
86
+ - Crie `ui-design-system.md` apenas se houver cores/componentes **específicos** da feature
87
+
88
+ **Se não existe:**
89
+ - Crie design system feature-level completo com:
90
+ - Paleta de cores (primary, secondary, accent, semantic)
91
+ - Tipografia (heading scales, body text, code)
92
+ - Spacing e layout (grid, margins, paddings)
93
+ - Componentes base (buttons, inputs, cards)
94
+
95
+ #### 4.2. `ui-mockups.md`
96
+
97
+ Wireframes ASCII + descrições:
98
+ - Layout geral de cada tela/página
99
+ - Posicionamento de componentes
100
+ - Responsividade (desktop, tablet, mobile)
101
+ - Estados (loading, error, empty, success)
102
+
103
+ #### 4.3. `ui-components.md`
104
+
105
+ Specs técnicas de componentes Fluent UI/MudBlazor:
106
+ - Componente a usar (FluentButton, MudDataGrid, etc.)
107
+ - Props e configurações
108
+ - Eventos e bindings
109
+ - Validações e estados
110
+
111
+ #### 4.4. `ui-flows.md`
112
+
113
+ Fluxos de usuário completos:
114
+ - User stories
115
+ - Diagramas de fluxo (texto/ASCII)
116
+ - Edge cases (o que acontece se...?)
117
+ - Validações e feedback
118
+
119
+ ### Passo 5: Validar Acessibilidade e Responsividade
120
+
121
+ Documente nos arquivos UI:
122
+ - **WCAG 2.1 Level AA** compliance
123
+ - Contraste de cores adequado
124
+ - Labels acessíveis para screen readers
125
+ - Navegação por teclado
126
+ - **Responsive breakpoints**
127
+ - Desktop (>1200px)
128
+ - Tablet (768px - 1199px)
129
+ - Mobile (<768px)
130
+
131
+ ### Passo 6: Atualizar State
132
+
133
+ ```bash
134
+ npx morph-spec state set {feature-name} phase uiux-design
135
+ npx morph-spec state mark-output {feature-name} ui-design-system
136
+ npx morph-spec state mark-output {feature-name} ui-mockups
137
+ npx morph-spec state mark-output {feature-name} ui-components
138
+ npx morph-spec state mark-output {feature-name} ui-flows
139
+ ```
140
+
141
+ ## Outputs Gerados
142
+
143
+ - `.morph/project/outputs/{feature}/ui-design-system.md`
144
+ - `.morph/project/outputs/{feature}/ui-mockups.md`
145
+ - `.morph/project/outputs/{feature}/ui-components.md`
146
+ - `.morph/project/outputs/{feature}/ui-flows.md`
147
+ - `.morph/project/outputs/{feature}/decisions.md` (atualizado com ADR UI library)
148
+
149
+ ## PAUSA OBRIGATÓRIA
150
+
151
+ Apresente ao usuário 3 ações sugeridas:
152
+
153
+ 1. **Aprovar UI/UX e prosseguir para design técnico**
154
+ 2. **Ajustar wireframes/componentes de telas específicas**
155
+ 3. **Revisar biblioteca UI escolhida (Fluent UI / MudBlazor)**
156
+
157
+ ## Critérios de Avanço
158
+
159
+ - [x] Input do usuário coletado (layout, referências)
160
+ - [x] Biblioteca UI escolhida e justificada (ADR)
161
+ - [x] 4 deliverables criados (design-system, mockups, components, flows)
162
+ - [x] Acessibilidade WCAG 2.1 documentada
163
+ - [x] Responsividade especificada
164
+ - [x] State atualizado
165
+ - [x] Usuário aprovou UI/UX
166
+
167
+ ---
168
+
169
+ Continuar automaticamente para FASE 2 (Design) após aprovação.
@@ -0,0 +1,14 @@
1
+ # Level 2: Domains
2
+
3
+ Domain expertise skills organized by squad.
4
+
5
+ **Purpose:** Skills that provide deep domain knowledge (backend, frontend, infra, quality, ai-agents, integrations).
6
+
7
+ **Squads:**
8
+ - backend/ - Backend Squad (led by dotnet-senior)
9
+ - frontend/ - Frontend Squad (led by ui-designer)
10
+ - infrastructure/ - Infrastructure Squad (led by azure-architect)
11
+ - quality/ - Quality Squad (coordinated by standards-architect)
12
+ - ai-agents/ - AI/Agent specialists
13
+ - integrations/ - External integration specialists
14
+ - architecture/ - Architecture and planning