@polymorphism-tech/morph-spec 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/CLAUDE.md +75 -371
  2. package/LICENSE +72 -72
  3. package/bin/detect-agents.js +225 -225
  4. package/bin/render-template.js +302 -302
  5. package/bin/semantic-detect-agents.js +246 -246
  6. package/bin/validate-agents-skills.js +251 -251
  7. package/bin/validate-agents.js +69 -69
  8. package/bin/validate-phase.js +263 -263
  9. package/content/.azure/README.md +293 -293
  10. package/content/.azure/docs/azure-devops-setup.md +454 -454
  11. package/content/.azure/docs/branch-strategy.md +398 -398
  12. package/content/.azure/docs/local-development.md +515 -515
  13. package/content/.azure/pipelines/pipeline-variables.yml +34 -34
  14. package/content/.azure/pipelines/prod-pipeline.yml +319 -319
  15. package/content/.azure/pipelines/staging-pipeline.yml +234 -234
  16. package/content/.azure/pipelines/templates/build-dotnet.yml +75 -75
  17. package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  18. package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  19. package/content/.azure/pipelines/templates/infra-deploy.yml +90 -90
  20. package/content/.claude/commands/morph-archive.md +79 -79
  21. package/content/.claude/commands/morph-deploy.md +529 -529
  22. package/content/.claude/commands/morph-infra.md +209 -209
  23. package/content/.claude/commands/morph-preflight.md +227 -227
  24. package/content/.claude/commands/morph-troubleshoot.md +122 -122
  25. package/content/.claude/settings.local.json +15 -15
  26. package/content/.claude/skills/{specialists → level-2-domains/architecture}/prompt-engineer.md +189 -189
  27. package/content/.claude/skills/{specialists → level-2-domains/architecture}/seo-growth-hacker.md +320 -320
  28. package/content/.claude/skills/{infra → level-2-domains/infrastructure}/azure-deploy-specialist.md +699 -699
  29. package/content/.morph/.morphversion +5 -5
  30. package/content/.morph/archive/.gitkeep +25 -25
  31. package/content/.morph/config/agents.json +7 -5
  32. package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  33. package/content/.morph/examples/api-nextjs/README.md +241 -241
  34. package/content/.morph/examples/api-nextjs/contracts.ts +307 -307
  35. package/content/.morph/examples/api-nextjs/spec.md +399 -399
  36. package/content/.morph/examples/api-nextjs/tasks.md +168 -168
  37. package/content/.morph/examples/micro-saas/README.md +125 -125
  38. package/content/.morph/examples/micro-saas/contracts.cs +358 -358
  39. package/content/.morph/examples/micro-saas/decisions.md +246 -246
  40. package/content/.morph/examples/micro-saas/spec.md +236 -236
  41. package/content/.morph/examples/micro-saas/tasks.md +150 -150
  42. package/content/.morph/examples/multi-agent/README.md +309 -309
  43. package/content/.morph/examples/multi-agent/contracts.cs +433 -433
  44. package/content/.morph/examples/multi-agent/spec.md +479 -479
  45. package/content/.morph/examples/multi-agent/tasks.md +185 -185
  46. package/content/.morph/examples/state-v3.json +188 -188
  47. package/content/.morph/features/.gitkeep +25 -25
  48. package/content/.morph/hooks/pre-commit-all.sh +48 -48
  49. package/content/.morph/hooks/pre-commit-specs.sh +49 -49
  50. package/content/.morph/hooks/pre-commit-tests.sh +60 -60
  51. package/content/.morph/project.md +160 -160
  52. package/content/.morph/schemas/agent.schema.json +296 -296
  53. package/content/.morph/specs/.gitkeep +20 -20
  54. package/content/.morph/standards/coding.md +377 -377
  55. package/content/.morph/standards/fluent-ui-setup.md +590 -590
  56. package/content/.morph/standards/migration-guide.md +514 -514
  57. package/content/.morph/standards/passkeys-auth.md +423 -423
  58. package/content/.morph/standards/vector-search-rag.md +536 -536
  59. package/content/.morph/state.json +17 -17
  60. package/content/.morph/templates/FluentDesignTheme.cs +149 -149
  61. package/content/.morph/templates/MudTheme.cs +281 -281
  62. package/content/.morph/templates/component.razor +239 -239
  63. package/content/.morph/templates/contracts.cs +217 -217
  64. package/content/.morph/templates/design-system.css +226 -226
  65. package/content/.morph/templates/infra/.dockerignore.example +89 -89
  66. package/content/.morph/templates/infra/Dockerfile.example +82 -82
  67. package/content/.morph/templates/infra/README.md +286 -286
  68. package/content/.morph/templates/infra/app-insights.bicep +63 -63
  69. package/content/.morph/templates/infra/app-service.bicep +164 -164
  70. package/content/.morph/templates/infra/azure-pipelines-deploy.yml +480 -480
  71. package/content/.morph/templates/infra/container-app-env.bicep +49 -49
  72. package/content/.morph/templates/infra/container-app.bicep +156 -156
  73. package/content/.morph/templates/infra/deploy-checklist.md +426 -426
  74. package/content/.morph/templates/infra/deploy.ps1 +229 -229
  75. package/content/.morph/templates/infra/deploy.sh +208 -208
  76. package/content/.morph/templates/infra/key-vault.bicep +91 -91
  77. package/content/.morph/templates/infra/main.bicep +189 -189
  78. package/content/.morph/templates/infra/parameters.dev.json +29 -29
  79. package/content/.morph/templates/infra/parameters.prod.json +29 -29
  80. package/content/.morph/templates/infra/parameters.staging.json +29 -29
  81. package/content/.morph/templates/infra/sql-database.bicep +103 -103
  82. package/content/.morph/templates/infra/storage.bicep +106 -106
  83. package/content/.morph/templates/integrations/asaas-client.cs +387 -387
  84. package/content/.morph/templates/integrations/asaas-webhook.cs +351 -351
  85. package/content/.morph/templates/integrations/azure-identity-config.cs +288 -288
  86. package/content/.morph/templates/integrations/clerk-config.cs +258 -258
  87. package/content/.morph/templates/job.cs +171 -171
  88. package/content/.morph/templates/migration.cs +83 -83
  89. package/content/.morph/templates/repository.cs +141 -141
  90. package/content/.morph/templates/saas/subscription.cs +347 -347
  91. package/content/.morph/templates/saas/tenant.cs +338 -338
  92. package/content/.morph/templates/service.cs +139 -139
  93. package/content/.morph/templates/sprint-status.yaml +68 -68
  94. package/content/.morph/templates/story.md +143 -143
  95. package/content/.morph/templates/test.cs +239 -239
  96. package/content/.morph/templates/ui-design-system.md +286 -286
  97. package/content/.morph/templates/ui-flows.md +336 -336
  98. package/content/.morph/templates/ui-mockups.md +133 -133
  99. package/content/.morph/test-infra/example.bicep +59 -59
  100. package/content/README.md +79 -79
  101. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
  102. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
  103. package/docs/api/scripts/collapse.js +38 -38
  104. package/docs/api/scripts/commonNav.js +28 -28
  105. package/docs/api/scripts/linenumber.js +25 -25
  106. package/docs/api/scripts/nav.js +12 -12
  107. package/docs/api/scripts/polyfill.js +3 -3
  108. package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
  109. package/docs/api/scripts/prettify/lang-css.js +2 -2
  110. package/docs/api/scripts/prettify/prettify.js +28 -28
  111. package/docs/api/scripts/search.js +98 -98
  112. package/docs/api/styles/jsdoc.css +776 -776
  113. package/docs/api/styles/prettify.css +80 -80
  114. package/docs/examples.md +328 -328
  115. package/docs/templates.md +418 -418
  116. package/package.json +1 -2
  117. package/scripts/postinstall.js +132 -132
  118. package/scripts/reorganize-skills.cjs +175 -0
  119. package/scripts/validate-agents-structure.cjs +52 -0
  120. package/scripts/validate-skills.cjs +180 -0
  121. package/src/commands/analyze-blazor-concurrency.js +193 -193
  122. package/src/commands/create-story.js +351 -351
  123. package/src/commands/deploy.js +780 -780
  124. package/src/commands/detect-agents.js +9 -0
  125. package/src/commands/detect.js +104 -104
  126. package/src/commands/generate.js +149 -149
  127. package/src/commands/lint-fluent.js +352 -352
  128. package/src/commands/rollback-phase.js +185 -185
  129. package/src/commands/session-summary.js +291 -291
  130. package/src/commands/shard-spec.js +224 -224
  131. package/src/commands/sprint-status.js +250 -250
  132. package/src/commands/state.js +334 -333
  133. package/src/commands/sync.js +167 -167
  134. package/src/commands/troubleshoot.js +222 -222
  135. package/src/commands/update.js +13 -1
  136. package/src/commands/validate-blazor-state.js +210 -210
  137. package/src/commands/validate-blazor.js +156 -156
  138. package/src/commands/validate-css.js +84 -84
  139. package/src/commands/validate-phase.js +221 -221
  140. package/src/lib/blazor-concurrency-analyzer.js +288 -288
  141. package/src/lib/blazor-state-validator.js +291 -291
  142. package/src/lib/blazor-validator.js +374 -374
  143. package/src/lib/css-validator.js +352 -352
  144. package/src/lib/design-system-generator.js +298 -298
  145. package/{detectors → src/lib/detectors}/config-detector.js +223 -223
  146. package/{detectors → src/lib/detectors}/conversation-analyzer.js +163 -163
  147. package/{detectors → src/lib/detectors}/index.js +84 -84
  148. package/{detectors → src/lib/detectors}/standards-generator.js +275 -275
  149. package/src/lib/learning-system.js +520 -520
  150. package/src/lib/mockup-generator.js +366 -366
  151. package/src/lib/state-manager.js +21 -4
  152. package/src/lib/troubleshoot-grep.js +194 -194
  153. package/src/lib/troubleshoot-index.js +144 -144
  154. package/src/lib/ui-detector.js +350 -350
  155. package/src/lib/validators/architecture-validator.js +387 -387
  156. package/src/lib/validators/package-validator.js +360 -360
  157. package/src/lib/validators/ui-contrast-validator.js +422 -422
  158. package/src/utils/logger.js +32 -32
  159. package/src/utils/version-checker.js +175 -175
  160. /package/{detectors → src/lib/detectors}/structure-detector.js +0 -0
@@ -1,392 +1,392 @@
1
- # Story-Driven Development - Guia do Usuário
2
-
3
- > **O que você faz quando implementa uma feature usando MORPH-SPEC**
4
-
5
- ---
6
-
7
- ## 📋 Você Está Aqui
8
-
9
- Você acabou de terminar as fases 0-4 do MORPH:
10
- - ✅ Criou `spec.md` (especificação técnica)
11
- - ✅ Criou `contracts.cs` (interfaces/DTOs)
12
- - ✅ Criou `tasks.json` (lista de tasks)
13
- - ✅ Aprovou tudo
14
-
15
- **Agora você vai implementar. Este guia mostra como.**
16
-
17
- ---
18
-
19
- ## 🚀 Passo a Passo Completo
20
-
21
- ### Cenário: Feature "scheduled-reports" com 10 tasks
22
-
23
- ```bash
24
- # ============================================================================
25
- # ETAPA 1: PREPARAÇÃO (1x por feature)
26
- # ============================================================================
27
-
28
- # 1.1 - Dividir spec.md em partes menores (opcional, mas recomendado)
29
- morph-spec story shard scheduled-reports
30
-
31
- # Isso cria:
32
- # .morph/project/outputs/scheduled-reports/spec/
33
- # ├── index.md
34
- # ├── entity-design.md
35
- # ├── service-layer.md
36
- # └── ui-components.md
37
-
38
- # 1.2 - Criar primeira story
39
- morph-spec story create scheduled-reports SR-001 \
40
- --title "Create ScheduledReport entity" \
41
- --tasks "Create entity,Configure EF mapping,Create migration,Write tests"
42
-
43
- # Isso cria:
44
- # .morph/project/outputs/scheduled-reports/stories/SR-001.md
45
- # (arquivo com TODO o contexto que você precisa)
46
-
47
- # 1.3 - Criar demais stories
48
- morph-spec story create scheduled-reports SR-002 \
49
- --title "Implement ReportService" \
50
- --tasks "Create interface,Implement service,Add DI,Write tests"
51
-
52
- morph-spec story create scheduled-reports SR-003 \
53
- --title "Create report UI component" \
54
- --tasks "Create razor component,Add to router,Style with Fluent UI"
55
-
56
- # ... criar SR-004, SR-005, etc.
57
-
58
- # 1.4 - Ver todas as stories criadas
59
- morph-spec story status scheduled-reports show
60
-
61
- # Output:
62
- # 📊 Sprint Status: scheduled-reports
63
- # Progress: 0% (0/10 stories done)
64
- # Stories:
65
- # ✅ SR-001: Create ScheduledReport entity (ready)
66
- # ✅ SR-002: Implement ReportService (ready)
67
- # ✅ SR-003: Create report UI component (ready)
68
- # ...
69
-
70
-
71
- # ============================================================================
72
- # ETAPA 2: IMPLEMENTAR STORY SR-001 (repetir para cada story)
73
- # ============================================================================
74
-
75
- # 2.1 - Marcar que você vai começar a trabalhar nela
76
- morph-spec story status scheduled-reports start SR-001
77
-
78
- # 2.2 - Abrir a story
79
- cat .morph/project/outputs/scheduled-reports/stories/SR-001.md
80
-
81
- # Você vai ver:
82
- # - Context (resumo do que fazer)
83
- # - Dev Notes (dicas automáticas tipo "use Primary Constructor")
84
- # - Tasks (lista de tarefas)
85
- # - Acceptance Criteria (como validar se tá certo)
86
-
87
- # 2.3 - Ler SÓ a parte relevante do spec (não o spec inteiro)
88
- cat .morph/project/outputs/scheduled-reports/spec/entity-design.md
89
-
90
- # 2.4 - Implementar o código
91
- # (você vai escrever o código da entity, testes, etc.)
92
-
93
- # 2.5 - Editar a story para adicionar suas notas
94
- nano .morph/project/outputs/scheduled-reports/stories/SR-001.md
95
-
96
- # Procurar a seção "### Dev Notes (Added by Dev Agent)"
97
- # Adicionar algo tipo:
98
- ### Dev Notes (Added by Dev Agent)
99
- ```
100
- ✅ Implementado ScheduledReport.cs (linha 12)
101
- ✅ EF mapping em ReportDbContext.cs (linha 45)
102
- ✅ Migration: 20251209_AddScheduledReports.cs
103
- ✅ Testes: ScheduledReportTests.cs (12 tests)
104
- ⚠️ RecurrencePattern usa regex complexo
105
- ```
106
-
107
- # 2.6 - Marcar que terminou e está pronto para revisar
108
- morph-spec story status scheduled-reports qa SR-001
109
-
110
- # 2.7 - Commitar código
111
- git add .
112
- git commit -m "feat(SR-001): create ScheduledReport entity"
113
-
114
-
115
- # ============================================================================
116
- # ETAPA 3: REVISAR STORY SR-001 (QA)
117
- # ============================================================================
118
-
119
- # 3.1 - Ver status
120
- morph-spec story status scheduled-reports show
121
-
122
- # Output:
123
- # 👀 SR-001: Create ScheduledReport entity (ready_for_qa)
124
-
125
- # 3.2 - Abrir a story (agora com as notas do Dev)
126
- cat .morph/project/outputs/scheduled-reports/stories/SR-001.md
127
-
128
- # Você vai ver as Dev Notes que foram adicionadas:
129
- # "✅ Implementado ScheduledReport.cs (linha 12)"
130
- # "⚠️ RecurrencePattern usa regex complexo"
131
-
132
- # 3.3 - Revisar o código
133
- cat src/Domain/Entities/ScheduledReport.cs
134
- cat tests/Unit/ScheduledReportTests.cs
135
-
136
- # 3.4 - Se precisar refatorar, refatore
137
-
138
- # 3.5 - Editar a story para adicionar notas de revisão
139
- nano .morph/project/outputs/scheduled-reports/stories/SR-001.md
140
-
141
- # Procurar a seção "### QA Notes (Added by QA Agent)"
142
- # Adicionar algo tipo:
143
- ### QA Notes (Added by QA Agent)
144
- ```
145
- ✅ Código OK, segue padrões
146
- ✅ Refatorei ValidateRecurrence() (linha 89)
147
- ✅ Adicionei 3 testes de edge cases
148
- ✅ Todos os acceptance criteria validados
149
- ```
150
-
151
- # 3.6 - Marcar como concluída
152
- morph-spec story status scheduled-reports done SR-001
153
-
154
- # Output:
155
- # ✅ Story SR-001 marked as DONE
156
- # 📋 Next Story: SR-002
157
-
158
- # 3.7 - Commitar mudanças (se fez refactoring)
159
- git add .
160
- git commit -m "refactor(SR-001): extract ValidateRecurrence method"
161
-
162
-
163
- # ============================================================================
164
- # ETAPA 4: PRÓXIMA STORY (SR-002)
165
- # ============================================================================
166
-
167
- # Repetir ETAPA 2 e 3 para SR-002:
168
- morph-spec story status scheduled-reports start SR-002
169
- cat .morph/project/outputs/scheduled-reports/stories/SR-002.md
170
- cat .morph/project/outputs/scheduled-reports/spec/service-layer.md
171
- # ... implementar ...
172
- # ... adicionar Dev Notes ...
173
- morph-spec story status scheduled-reports qa SR-002
174
- # ... revisar ...
175
- # ... adicionar QA Notes ...
176
- morph-spec story status scheduled-reports done SR-002
177
-
178
- # Repetir para SR-003, SR-004, ..., SR-010
179
-
180
-
181
- # ============================================================================
182
- # ETAPA 5: FINALIZAÇÃO
183
- # ============================================================================
184
-
185
- # Ver progresso geral
186
- morph-spec story status scheduled-reports show
187
-
188
- # Output:
189
- # 📊 Sprint Status: scheduled-reports
190
- # Progress: 100% (10/10 stories done)
191
- # 🎉 All stories completed!
192
-
193
- # Pronto! Feature implementada.
194
- ```
195
-
196
- ---
197
-
198
- ## 📝 Comandos que Você Usa
199
-
200
- ### Criar stories (início da feature)
201
- ```bash
202
- morph-spec story shard <feature-name>
203
- morph-spec story create <feature-name> <story-id> --title "..." --tasks "..."
204
- ```
205
-
206
- ### Ver status
207
- ```bash
208
- morph-spec story status <feature-name> show
209
- ```
210
-
211
- ### Marcar que vai começar
212
- ```bash
213
- morph-spec story status <feature-name> start <story-id>
214
- ```
215
-
216
- ### Marcar que terminou (vai para QA)
217
- ```bash
218
- morph-spec story status <feature-name> qa <story-id>
219
- ```
220
-
221
- ### Marcar como concluída
222
- ```bash
223
- morph-spec story status <feature-name> done <story-id>
224
- ```
225
-
226
- ### Ver próxima story
227
- ```bash
228
- morph-spec story status <feature-name> next
229
- ```
230
-
231
- ---
232
-
233
- ## 🔄 Seu Dia a Dia
234
-
235
- ### Segunda-feira: Criar as stories
236
- ```bash
237
- morph-spec story shard my-feature
238
- morph-spec story create my-feature MF-001 --title "..." --tasks "..."
239
- morph-spec story create my-feature MF-002 --title "..." --tasks "..."
240
- morph-spec story create my-feature MF-003 --title "..." --tasks "..."
241
- ```
242
-
243
- ### Terça-feira: Implementar MF-001
244
- ```bash
245
- morph-spec story status my-feature start MF-001
246
- cat .morph/project/outputs/my-feature/stories/MF-001.md
247
- cat .morph/project/outputs/my-feature/spec/entity-design.md
248
- # [implementar código]
249
- # [adicionar Dev Notes na story]
250
- morph-spec story status my-feature qa MF-001
251
- git commit ...
252
- ```
253
-
254
- ### Terça à tarde: Revisar MF-001
255
- ```bash
256
- cat .morph/project/outputs/my-feature/stories/MF-001.md # ver Dev Notes
257
- # [revisar código]
258
- # [adicionar QA Notes na story]
259
- morph-spec story status my-feature done MF-001
260
- git commit ...
261
- ```
262
-
263
- ### Quarta-feira: Implementar MF-002
264
- ```bash
265
- morph-spec story status my-feature start MF-002
266
- # ... repetir workflow
267
- ```
268
-
269
- ---
270
-
271
- ## ❓ Perguntas Comuns
272
-
273
- ### "Preciso shardar o spec?"
274
- **Não é obrigatório.** Só recomendado se seu `spec.md` for grande (5+ seções).
275
-
276
- Se for pequeno, pule o `shard-spec.js` e vá direto para `create-story.js`.
277
-
278
- ---
279
-
280
- ### "Quantas tasks por story?"
281
- **4-8 tasks** é ideal. Se tiver mais, quebre em sub-stories.
282
-
283
- Exemplo:
284
- - ❌ Ruim: Story com 20 tasks (muito grande)
285
- - ✅ Bom: Story com 5 tasks (1 dia de trabalho)
286
-
287
- ---
288
-
289
- ### "O que são Dev Notes e QA Notes?"
290
- **Dev Notes:** Você (Dev) escreve o que implementou, para o QA saber.
291
-
292
- **QA Notes:** Você (QA) escreve o que revisou/refatorou.
293
-
294
- **Exemplo:**
295
- ```markdown
296
- ### Dev Notes (Added by Dev Agent)
297
- ```
298
- ✅ Implementei X.cs na pasta Domain/
299
- ⚠️ Cuidado: usa regex complexo na linha 67
300
- ```
301
-
302
- ### QA Notes (Added by QA Agent)
303
- ```
304
- ✅ Revisei e está OK
305
- ✅ Refatorei método ValidateX() para ficar mais claro
306
- ```
307
- ```
308
-
309
- ---
310
-
311
- ### "Onde adiciono Dev/QA Notes?"
312
- **No arquivo da story.**
313
-
314
- 1. Abra: `.morph/project/outputs/my-feature/stories/MF-001.md`
315
- 2. Procure a seção `### Dev Notes (Added by Dev Agent)`
316
- 3. Substitua `[VOCÊ VAI PREENCHER AQUI APÓS IMPLEMENTAR]` pelas suas notas
317
- 4. Salve
318
-
319
- ---
320
-
321
- ### "E se eu esquecer de adicionar Dev Notes?"
322
- Sem problema. Edite a story manualmente:
323
-
324
- ```bash
325
- nano .morph/project/outputs/my-feature/stories/MF-001.md
326
- # Adicione as notas na seção correta
327
- # Salve
328
- ```
329
-
330
- ---
331
-
332
- ### "Posso implementar várias stories na mesma sessão?"
333
- **Não recomendado.**
334
-
335
- Cada story = nova sessão do Claude (se usar Claude Code).
336
-
337
- Por quê? Evita confusão e economiza tokens.
338
-
339
- ---
340
-
341
- ## ✅ Checklist Rápido
342
-
343
- **No início da feature:**
344
- - [ ] Roda `shard-spec.js` (opcional)
345
- - [ ] Roda `create-story.js` para cada story
346
- - [ ] Roda `show` para ver todas criadas
347
-
348
- **Para cada story:**
349
- - [ ] `start` → Marcar que vai começar
350
- - [ ] Ler story file (`.morph/project/outputs/.../stories/XX.md`)
351
- - [ ] Ler spec shard (`.morph/project/outputs/.../spec/xxx.md`)
352
- - [ ] Implementar código
353
- - [ ] Adicionar Dev Notes na story
354
- - [ ] `qa` → Marcar que terminou
355
- - [ ] Commit código
356
- - [ ] Revisar código
357
- - [ ] Adicionar QA Notes na story
358
- - [ ] `done` → Marcar como concluída
359
- - [ ] Commit mudanças
360
-
361
- **No final:**
362
- - [ ] `show` → Ver que 100% completo
363
- - [ ] Todas stories têm Dev Notes e QA Notes preenchidas
364
-
365
- ---
366
-
367
- ## 📚 Referência Rápida
368
-
369
- ```bash
370
- # Ver ajuda de qualquer comando
371
- morph-spec story --help
372
- morph-spec story shard --help
373
- morph-spec story create --help
374
- morph-spec story status --help
375
-
376
- # Estrutura de pastas (após criar stories)
377
- .morph/project/outputs/my-feature/
378
- ├── spec/ # Spec dividido em partes
379
- │ ├── index.md
380
- │ ├── entity-design.md
381
- │ └── service-layer.md
382
- ├── stories/ # Stories auto-contidas
383
- │ ├── MF-001.md
384
- │ ├── MF-002.md
385
- │ └── MF-003.md
386
- └── sprint-status.yaml # Progresso automático
387
- ```
388
-
389
- ---
390
-
391
- *MORPH-SPEC Framework - Guia do Usuário*
392
- *Use este guia como referência rápida durante o desenvolvimento*
1
+ # Story-Driven Development - Guia do Usuário
2
+
3
+ > **O que você faz quando implementa uma feature usando MORPH-SPEC**
4
+
5
+ ---
6
+
7
+ ## 📋 Você Está Aqui
8
+
9
+ Você acabou de terminar as fases 0-4 do MORPH:
10
+ - ✅ Criou `spec.md` (especificação técnica)
11
+ - ✅ Criou `contracts.cs` (interfaces/DTOs)
12
+ - ✅ Criou `tasks.json` (lista de tasks)
13
+ - ✅ Aprovou tudo
14
+
15
+ **Agora você vai implementar. Este guia mostra como.**
16
+
17
+ ---
18
+
19
+ ## 🚀 Passo a Passo Completo
20
+
21
+ ### Cenário: Feature "scheduled-reports" com 10 tasks
22
+
23
+ ```bash
24
+ # ============================================================================
25
+ # ETAPA 1: PREPARAÇÃO (1x por feature)
26
+ # ============================================================================
27
+
28
+ # 1.1 - Dividir spec.md em partes menores (opcional, mas recomendado)
29
+ morph-spec story shard scheduled-reports
30
+
31
+ # Isso cria:
32
+ # .morph/project/outputs/scheduled-reports/spec/
33
+ # ├── index.md
34
+ # ├── entity-design.md
35
+ # ├── service-layer.md
36
+ # └── ui-components.md
37
+
38
+ # 1.2 - Criar primeira story
39
+ morph-spec story create scheduled-reports SR-001 \
40
+ --title "Create ScheduledReport entity" \
41
+ --tasks "Create entity,Configure EF mapping,Create migration,Write tests"
42
+
43
+ # Isso cria:
44
+ # .morph/project/outputs/scheduled-reports/stories/SR-001.md
45
+ # (arquivo com TODO o contexto que você precisa)
46
+
47
+ # 1.3 - Criar demais stories
48
+ morph-spec story create scheduled-reports SR-002 \
49
+ --title "Implement ReportService" \
50
+ --tasks "Create interface,Implement service,Add DI,Write tests"
51
+
52
+ morph-spec story create scheduled-reports SR-003 \
53
+ --title "Create report UI component" \
54
+ --tasks "Create razor component,Add to router,Style with Fluent UI"
55
+
56
+ # ... criar SR-004, SR-005, etc.
57
+
58
+ # 1.4 - Ver todas as stories criadas
59
+ morph-spec story status scheduled-reports show
60
+
61
+ # Output:
62
+ # 📊 Sprint Status: scheduled-reports
63
+ # Progress: 0% (0/10 stories done)
64
+ # Stories:
65
+ # ✅ SR-001: Create ScheduledReport entity (ready)
66
+ # ✅ SR-002: Implement ReportService (ready)
67
+ # ✅ SR-003: Create report UI component (ready)
68
+ # ...
69
+
70
+
71
+ # ============================================================================
72
+ # ETAPA 2: IMPLEMENTAR STORY SR-001 (repetir para cada story)
73
+ # ============================================================================
74
+
75
+ # 2.1 - Marcar que você vai começar a trabalhar nela
76
+ morph-spec story status scheduled-reports start SR-001
77
+
78
+ # 2.2 - Abrir a story
79
+ cat .morph/project/outputs/scheduled-reports/stories/SR-001.md
80
+
81
+ # Você vai ver:
82
+ # - Context (resumo do que fazer)
83
+ # - Dev Notes (dicas automáticas tipo "use Primary Constructor")
84
+ # - Tasks (lista de tarefas)
85
+ # - Acceptance Criteria (como validar se tá certo)
86
+
87
+ # 2.3 - Ler SÓ a parte relevante do spec (não o spec inteiro)
88
+ cat .morph/project/outputs/scheduled-reports/spec/entity-design.md
89
+
90
+ # 2.4 - Implementar o código
91
+ # (você vai escrever o código da entity, testes, etc.)
92
+
93
+ # 2.5 - Editar a story para adicionar suas notas
94
+ nano .morph/project/outputs/scheduled-reports/stories/SR-001.md
95
+
96
+ # Procurar a seção "### Dev Notes (Added by Dev Agent)"
97
+ # Adicionar algo tipo:
98
+ ### Dev Notes (Added by Dev Agent)
99
+ ```
100
+ ✅ Implementado ScheduledReport.cs (linha 12)
101
+ ✅ EF mapping em ReportDbContext.cs (linha 45)
102
+ ✅ Migration: 20251209_AddScheduledReports.cs
103
+ ✅ Testes: ScheduledReportTests.cs (12 tests)
104
+ ⚠️ RecurrencePattern usa regex complexo
105
+ ```
106
+
107
+ # 2.6 - Marcar que terminou e está pronto para revisar
108
+ morph-spec story status scheduled-reports qa SR-001
109
+
110
+ # 2.7 - Commitar código
111
+ git add .
112
+ git commit -m "feat(SR-001): create ScheduledReport entity"
113
+
114
+
115
+ # ============================================================================
116
+ # ETAPA 3: REVISAR STORY SR-001 (QA)
117
+ # ============================================================================
118
+
119
+ # 3.1 - Ver status
120
+ morph-spec story status scheduled-reports show
121
+
122
+ # Output:
123
+ # 👀 SR-001: Create ScheduledReport entity (ready_for_qa)
124
+
125
+ # 3.2 - Abrir a story (agora com as notas do Dev)
126
+ cat .morph/project/outputs/scheduled-reports/stories/SR-001.md
127
+
128
+ # Você vai ver as Dev Notes que foram adicionadas:
129
+ # "✅ Implementado ScheduledReport.cs (linha 12)"
130
+ # "⚠️ RecurrencePattern usa regex complexo"
131
+
132
+ # 3.3 - Revisar o código
133
+ cat src/Domain/Entities/ScheduledReport.cs
134
+ cat tests/Unit/ScheduledReportTests.cs
135
+
136
+ # 3.4 - Se precisar refatorar, refatore
137
+
138
+ # 3.5 - Editar a story para adicionar notas de revisão
139
+ nano .morph/project/outputs/scheduled-reports/stories/SR-001.md
140
+
141
+ # Procurar a seção "### QA Notes (Added by QA Agent)"
142
+ # Adicionar algo tipo:
143
+ ### QA Notes (Added by QA Agent)
144
+ ```
145
+ ✅ Código OK, segue padrões
146
+ ✅ Refatorei ValidateRecurrence() (linha 89)
147
+ ✅ Adicionei 3 testes de edge cases
148
+ ✅ Todos os acceptance criteria validados
149
+ ```
150
+
151
+ # 3.6 - Marcar como concluída
152
+ morph-spec story status scheduled-reports done SR-001
153
+
154
+ # Output:
155
+ # ✅ Story SR-001 marked as DONE
156
+ # 📋 Next Story: SR-002
157
+
158
+ # 3.7 - Commitar mudanças (se fez refactoring)
159
+ git add .
160
+ git commit -m "refactor(SR-001): extract ValidateRecurrence method"
161
+
162
+
163
+ # ============================================================================
164
+ # ETAPA 4: PRÓXIMA STORY (SR-002)
165
+ # ============================================================================
166
+
167
+ # Repetir ETAPA 2 e 3 para SR-002:
168
+ morph-spec story status scheduled-reports start SR-002
169
+ cat .morph/project/outputs/scheduled-reports/stories/SR-002.md
170
+ cat .morph/project/outputs/scheduled-reports/spec/service-layer.md
171
+ # ... implementar ...
172
+ # ... adicionar Dev Notes ...
173
+ morph-spec story status scheduled-reports qa SR-002
174
+ # ... revisar ...
175
+ # ... adicionar QA Notes ...
176
+ morph-spec story status scheduled-reports done SR-002
177
+
178
+ # Repetir para SR-003, SR-004, ..., SR-010
179
+
180
+
181
+ # ============================================================================
182
+ # ETAPA 5: FINALIZAÇÃO
183
+ # ============================================================================
184
+
185
+ # Ver progresso geral
186
+ morph-spec story status scheduled-reports show
187
+
188
+ # Output:
189
+ # 📊 Sprint Status: scheduled-reports
190
+ # Progress: 100% (10/10 stories done)
191
+ # 🎉 All stories completed!
192
+
193
+ # Pronto! Feature implementada.
194
+ ```
195
+
196
+ ---
197
+
198
+ ## 📝 Comandos que Você Usa
199
+
200
+ ### Criar stories (início da feature)
201
+ ```bash
202
+ morph-spec story shard <feature-name>
203
+ morph-spec story create <feature-name> <story-id> --title "..." --tasks "..."
204
+ ```
205
+
206
+ ### Ver status
207
+ ```bash
208
+ morph-spec story status <feature-name> show
209
+ ```
210
+
211
+ ### Marcar que vai começar
212
+ ```bash
213
+ morph-spec story status <feature-name> start <story-id>
214
+ ```
215
+
216
+ ### Marcar que terminou (vai para QA)
217
+ ```bash
218
+ morph-spec story status <feature-name> qa <story-id>
219
+ ```
220
+
221
+ ### Marcar como concluída
222
+ ```bash
223
+ morph-spec story status <feature-name> done <story-id>
224
+ ```
225
+
226
+ ### Ver próxima story
227
+ ```bash
228
+ morph-spec story status <feature-name> next
229
+ ```
230
+
231
+ ---
232
+
233
+ ## 🔄 Seu Dia a Dia
234
+
235
+ ### Segunda-feira: Criar as stories
236
+ ```bash
237
+ morph-spec story shard my-feature
238
+ morph-spec story create my-feature MF-001 --title "..." --tasks "..."
239
+ morph-spec story create my-feature MF-002 --title "..." --tasks "..."
240
+ morph-spec story create my-feature MF-003 --title "..." --tasks "..."
241
+ ```
242
+
243
+ ### Terça-feira: Implementar MF-001
244
+ ```bash
245
+ morph-spec story status my-feature start MF-001
246
+ cat .morph/project/outputs/my-feature/stories/MF-001.md
247
+ cat .morph/project/outputs/my-feature/spec/entity-design.md
248
+ # [implementar código]
249
+ # [adicionar Dev Notes na story]
250
+ morph-spec story status my-feature qa MF-001
251
+ git commit ...
252
+ ```
253
+
254
+ ### Terça à tarde: Revisar MF-001
255
+ ```bash
256
+ cat .morph/project/outputs/my-feature/stories/MF-001.md # ver Dev Notes
257
+ # [revisar código]
258
+ # [adicionar QA Notes na story]
259
+ morph-spec story status my-feature done MF-001
260
+ git commit ...
261
+ ```
262
+
263
+ ### Quarta-feira: Implementar MF-002
264
+ ```bash
265
+ morph-spec story status my-feature start MF-002
266
+ # ... repetir workflow
267
+ ```
268
+
269
+ ---
270
+
271
+ ## ❓ Perguntas Comuns
272
+
273
+ ### "Preciso shardar o spec?"
274
+ **Não é obrigatório.** Só recomendado se seu `spec.md` for grande (5+ seções).
275
+
276
+ Se for pequeno, pule o `shard-spec.js` e vá direto para `create-story.js`.
277
+
278
+ ---
279
+
280
+ ### "Quantas tasks por story?"
281
+ **4-8 tasks** é ideal. Se tiver mais, quebre em sub-stories.
282
+
283
+ Exemplo:
284
+ - ❌ Ruim: Story com 20 tasks (muito grande)
285
+ - ✅ Bom: Story com 5 tasks (1 dia de trabalho)
286
+
287
+ ---
288
+
289
+ ### "O que são Dev Notes e QA Notes?"
290
+ **Dev Notes:** Você (Dev) escreve o que implementou, para o QA saber.
291
+
292
+ **QA Notes:** Você (QA) escreve o que revisou/refatorou.
293
+
294
+ **Exemplo:**
295
+ ```markdown
296
+ ### Dev Notes (Added by Dev Agent)
297
+ ```
298
+ ✅ Implementei X.cs na pasta Domain/
299
+ ⚠️ Cuidado: usa regex complexo na linha 67
300
+ ```
301
+
302
+ ### QA Notes (Added by QA Agent)
303
+ ```
304
+ ✅ Revisei e está OK
305
+ ✅ Refatorei método ValidateX() para ficar mais claro
306
+ ```
307
+ ```
308
+
309
+ ---
310
+
311
+ ### "Onde adiciono Dev/QA Notes?"
312
+ **No arquivo da story.**
313
+
314
+ 1. Abra: `.morph/project/outputs/my-feature/stories/MF-001.md`
315
+ 2. Procure a seção `### Dev Notes (Added by Dev Agent)`
316
+ 3. Substitua `[VOCÊ VAI PREENCHER AQUI APÓS IMPLEMENTAR]` pelas suas notas
317
+ 4. Salve
318
+
319
+ ---
320
+
321
+ ### "E se eu esquecer de adicionar Dev Notes?"
322
+ Sem problema. Edite a story manualmente:
323
+
324
+ ```bash
325
+ nano .morph/project/outputs/my-feature/stories/MF-001.md
326
+ # Adicione as notas na seção correta
327
+ # Salve
328
+ ```
329
+
330
+ ---
331
+
332
+ ### "Posso implementar várias stories na mesma sessão?"
333
+ **Não recomendado.**
334
+
335
+ Cada story = nova sessão do Claude (se usar Claude Code).
336
+
337
+ Por quê? Evita confusão e economiza tokens.
338
+
339
+ ---
340
+
341
+ ## ✅ Checklist Rápido
342
+
343
+ **No início da feature:**
344
+ - [ ] Roda `shard-spec.js` (opcional)
345
+ - [ ] Roda `create-story.js` para cada story
346
+ - [ ] Roda `show` para ver todas criadas
347
+
348
+ **Para cada story:**
349
+ - [ ] `start` → Marcar que vai começar
350
+ - [ ] Ler story file (`.morph/project/outputs/.../stories/XX.md`)
351
+ - [ ] Ler spec shard (`.morph/project/outputs/.../spec/xxx.md`)
352
+ - [ ] Implementar código
353
+ - [ ] Adicionar Dev Notes na story
354
+ - [ ] `qa` → Marcar que terminou
355
+ - [ ] Commit código
356
+ - [ ] Revisar código
357
+ - [ ] Adicionar QA Notes na story
358
+ - [ ] `done` → Marcar como concluída
359
+ - [ ] Commit mudanças
360
+
361
+ **No final:**
362
+ - [ ] `show` → Ver que 100% completo
363
+ - [ ] Todas stories têm Dev Notes e QA Notes preenchidas
364
+
365
+ ---
366
+
367
+ ## 📚 Referência Rápida
368
+
369
+ ```bash
370
+ # Ver ajuda de qualquer comando
371
+ morph-spec story --help
372
+ morph-spec story shard --help
373
+ morph-spec story create --help
374
+ morph-spec story status --help
375
+
376
+ # Estrutura de pastas (após criar stories)
377
+ .morph/project/outputs/my-feature/
378
+ ├── spec/ # Spec dividido em partes
379
+ │ ├── index.md
380
+ │ ├── entity-design.md
381
+ │ └── service-layer.md
382
+ ├── stories/ # Stories auto-contidas
383
+ │ ├── MF-001.md
384
+ │ ├── MF-002.md
385
+ │ └── MF-003.md
386
+ └── sprint-status.yaml # Progresso automático
387
+ ```
388
+
389
+ ---
390
+
391
+ *MORPH-SPEC Framework - Guia do Usuário*
392
+ *Use este guia como referência rápida durante o desenvolvimento*