@polymorphism-tech/morph-spec 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/CLAUDE.md +314 -1673
  2. package/LICENSE +72 -72
  3. package/README.md +515 -516
  4. package/bin/detect-agents.js +225 -225
  5. package/bin/morph-spec.js +358 -173
  6. package/bin/render-template.js +302 -302
  7. package/bin/semantic-detect-agents.js +246 -246
  8. package/bin/task-manager.js +429 -0
  9. package/bin/validate-agents-skills.js +251 -251
  10. package/bin/validate-agents.js +69 -69
  11. package/bin/validate-phase.js +263 -263
  12. package/bin/validate.js +369 -0
  13. package/content/.azure/README.md +293 -293
  14. package/content/.azure/docs/azure-devops-setup.md +454 -454
  15. package/content/.azure/docs/branch-strategy.md +398 -398
  16. package/content/.azure/docs/local-development.md +515 -515
  17. package/content/.azure/pipelines/pipeline-variables.yml +34 -34
  18. package/content/.azure/pipelines/prod-pipeline.yml +319 -319
  19. package/content/.azure/pipelines/staging-pipeline.yml +234 -234
  20. package/content/.azure/pipelines/templates/build-dotnet.yml +75 -75
  21. package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  22. package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  23. package/content/.azure/pipelines/templates/infra-deploy.yml +90 -90
  24. package/content/.claude/commands/morph-apply.md +221 -158
  25. package/content/.claude/commands/morph-archive.md +79 -79
  26. package/content/.claude/commands/morph-infra.md +209 -209
  27. package/content/.claude/commands/morph-preflight.md +227 -0
  28. package/content/.claude/commands/morph-proposal.md +122 -101
  29. package/content/.claude/commands/morph-status.md +86 -86
  30. package/content/.claude/commands/morph-troubleshoot.md +122 -0
  31. package/content/.claude/settings.local.json +15 -15
  32. package/content/.claude/skills/checklists/code-review.md +226 -0
  33. package/content/.claude/skills/checklists/morph-checklist.md +117 -0
  34. package/content/.claude/skills/checklists/simulation-checklist.md +77 -0
  35. package/content/.claude/skills/infra/bicep-architect.md +126 -419
  36. package/content/.claude/skills/infra/container-specialist.md +131 -437
  37. package/content/.claude/skills/infra/devops-engineer.md +119 -405
  38. package/content/.claude/skills/integrations/asaas-financial.md +130 -333
  39. package/content/.claude/skills/integrations/azure-identity.md +142 -309
  40. package/content/.claude/skills/integrations/clerk-auth.md +108 -290
  41. package/content/.claude/skills/integrations/resend-email.md +119 -0
  42. package/content/.claude/skills/specialists/ai-system-architect.md +192 -604
  43. package/content/.claude/skills/specialists/azure-architect.md +142 -142
  44. package/content/.claude/skills/specialists/code-analyzer.md +235 -0
  45. package/content/.claude/skills/specialists/dotnet-senior.md +287 -0
  46. package/content/.claude/skills/specialists/ef-modeler.md +113 -200
  47. package/content/.claude/skills/specialists/hangfire-orchestrator.md +126 -245
  48. package/content/.claude/skills/specialists/ms-agent-expert.md +109 -263
  49. package/content/.claude/skills/specialists/po-pm-advisor.md +197 -197
  50. package/content/.claude/skills/specialists/standards-architect.md +156 -78
  51. package/content/.claude/skills/specialists/testing-specialist.md +126 -0
  52. package/content/.claude/skills/specialists/ui-ux-designer.md +191 -1060
  53. package/content/.claude/skills/stacks/dotnet-blazor.md +210 -588
  54. package/content/.claude/skills/stacks/dotnet-nextjs.md +154 -402
  55. package/content/.claude/skills/workflows/morph-replicate.md +213 -0
  56. package/content/.claude/{commands/morph-clarify.md → skills/workflows/phase-clarify.md} +5 -58
  57. package/content/.claude/{commands/morph-design.md → skills/workflows/phase-design.md} +16 -86
  58. package/content/.claude/{commands/morph-setup.md → skills/workflows/phase-setup.md} +9 -17
  59. package/content/.claude/skills/workflows/phase-tasks.md +164 -0
  60. package/content/.claude/{commands/morph-uiux.md → skills/workflows/phase-uiux.md} +15 -88
  61. package/content/.morph/.morphversion +5 -5
  62. package/content/.morph/archive/.gitkeep +25 -25
  63. package/content/.morph/config/agents.json +378 -242
  64. package/content/.morph/config/config.template.json +89 -108
  65. package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  66. package/content/.morph/docs/workflows/design-impl.md +37 -0
  67. package/content/.morph/docs/workflows/fast-track.md +29 -0
  68. package/content/.morph/docs/workflows/full-morph.md +76 -0
  69. package/content/.morph/docs/workflows/standard.md +44 -0
  70. package/content/.morph/docs/workflows/ui-refresh.md +39 -0
  71. package/content/.morph/examples/api-nextjs/README.md +241 -241
  72. package/content/.morph/examples/api-nextjs/contracts.ts +307 -307
  73. package/content/.morph/examples/api-nextjs/spec.md +399 -399
  74. package/content/.morph/examples/api-nextjs/tasks.md +168 -168
  75. package/content/.morph/examples/micro-saas/README.md +125 -125
  76. package/content/.morph/examples/micro-saas/contracts.cs +358 -358
  77. package/content/.morph/examples/micro-saas/decisions.md +246 -246
  78. package/content/.morph/examples/micro-saas/spec.md +236 -236
  79. package/content/.morph/examples/micro-saas/tasks.md +150 -150
  80. package/content/.morph/examples/multi-agent/README.md +309 -309
  81. package/content/.morph/examples/multi-agent/contracts.cs +433 -433
  82. package/content/.morph/examples/multi-agent/spec.md +479 -479
  83. package/content/.morph/examples/multi-agent/tasks.md +185 -185
  84. package/content/.morph/examples/scheduled-reports/decisions.md +158 -0
  85. package/content/.morph/examples/scheduled-reports/proposal.md +95 -0
  86. package/content/.morph/examples/scheduled-reports/spec.md +267 -0
  87. package/content/.morph/examples/state-v3.json +188 -0
  88. package/content/.morph/features/.gitkeep +25 -25
  89. package/content/.morph/hooks/README.md +190 -239
  90. package/content/.morph/hooks/pre-commit-agents.sh +24 -24
  91. package/content/.morph/hooks/pre-commit-all.sh +48 -48
  92. package/content/.morph/hooks/pre-commit-specs.sh +49 -49
  93. package/content/.morph/hooks/pre-commit-tests.sh +60 -60
  94. package/content/.morph/project.md +160 -160
  95. package/content/.morph/schemas/agent.schema.json +296 -296
  96. package/content/.morph/schemas/tasks.schema.json +220 -0
  97. package/content/.morph/specs/.gitkeep +20 -20
  98. package/content/.morph/standards/agent-framework-blazor-ui.md +359 -0
  99. package/content/.morph/standards/agent-framework-production.md +410 -0
  100. package/content/.morph/standards/agent-framework-setup.md +413 -453
  101. package/content/.morph/standards/agent-framework-workflows.md +349 -0
  102. package/content/.morph/standards/architecture.md +325 -325
  103. package/content/.morph/standards/azure.md +605 -379
  104. package/content/.morph/standards/coding.md +377 -377
  105. package/content/.morph/standards/dotnet10-migration.md +520 -494
  106. package/content/.morph/standards/fluent-ui-setup.md +590 -590
  107. package/content/.morph/standards/migration-guide.md +514 -514
  108. package/content/.morph/standards/passkeys-auth.md +423 -423
  109. package/content/.morph/standards/vector-search-rag.md +536 -536
  110. package/content/.morph/state.json +17 -17
  111. package/content/.morph/templates/FluentDesignTheme.cs +149 -149
  112. package/content/.morph/templates/MudTheme.cs +281 -281
  113. package/content/.morph/templates/agent.cs +163 -172
  114. package/content/.morph/templates/clarify-questions.md +159 -0
  115. package/content/.morph/templates/component.razor +239 -239
  116. package/content/.morph/templates/contracts/Commands.cs +74 -0
  117. package/content/.morph/templates/contracts/Entities.cs +25 -0
  118. package/content/.morph/templates/contracts/Queries.cs +74 -0
  119. package/content/.morph/templates/contracts/README.md +74 -0
  120. package/content/.morph/templates/contracts.cs +217 -217
  121. package/content/.morph/templates/decisions.md +123 -106
  122. package/content/.morph/templates/design-system.css +226 -226
  123. package/content/.morph/templates/infra/.dockerignore.example +89 -89
  124. package/content/.morph/templates/infra/Dockerfile.example +82 -82
  125. package/content/.morph/templates/infra/README.md +286 -286
  126. package/content/.morph/templates/infra/app-insights.bicep +63 -63
  127. package/content/.morph/templates/infra/app-service.bicep +164 -164
  128. package/content/.morph/templates/infra/container-app-env.bicep +49 -49
  129. package/content/.morph/templates/infra/container-app.bicep +156 -156
  130. package/content/.morph/templates/infra/deploy-checklist.md +426 -0
  131. package/content/.morph/templates/infra/deploy.ps1 +229 -229
  132. package/content/.morph/templates/infra/deploy.sh +208 -208
  133. package/content/.morph/templates/infra/key-vault.bicep +91 -91
  134. package/content/.morph/templates/infra/main.bicep +189 -189
  135. package/content/.morph/templates/infra/parameters.dev.json +29 -29
  136. package/content/.morph/templates/infra/parameters.prod.json +29 -29
  137. package/content/.morph/templates/infra/parameters.staging.json +29 -29
  138. package/content/.morph/templates/infra/sql-database.bicep +103 -103
  139. package/content/.morph/templates/infra/storage.bicep +106 -106
  140. package/content/.morph/templates/integrations/asaas-client.cs +387 -387
  141. package/content/.morph/templates/integrations/asaas-webhook.cs +351 -351
  142. package/content/.morph/templates/integrations/azure-identity-config.cs +288 -288
  143. package/content/.morph/templates/integrations/clerk-config.cs +258 -258
  144. package/content/.morph/templates/job.cs +171 -171
  145. package/content/.morph/templates/migration.cs +83 -83
  146. package/content/.morph/templates/proposal.md +141 -155
  147. package/content/.morph/templates/recap.md +94 -105
  148. package/content/.morph/templates/repository.cs +141 -141
  149. package/content/.morph/templates/saas/subscription.cs +347 -347
  150. package/content/.morph/templates/saas/tenant.cs +338 -338
  151. package/content/.morph/templates/service.cs +139 -139
  152. package/content/.morph/templates/simulation.md +353 -0
  153. package/content/.morph/templates/spec.md +149 -148
  154. package/content/.morph/templates/sprint-status.yaml +68 -68
  155. package/content/.morph/templates/state.template.json +222 -222
  156. package/content/.morph/templates/story.md +143 -143
  157. package/content/.morph/templates/tasks.md +257 -235
  158. package/content/.morph/templates/test.cs +239 -239
  159. package/content/.morph/templates/ui-components.md +362 -276
  160. package/content/.morph/templates/ui-design-system.md +286 -286
  161. package/content/.morph/templates/ui-flows.md +336 -336
  162. package/content/.morph/templates/ui-mockups.md +133 -133
  163. package/content/.morph/test-infra/example.bicep +59 -59
  164. package/content/CLAUDE.md +150 -442
  165. package/content/README.md +79 -79
  166. package/detectors/config-detector.js +223 -223
  167. package/detectors/conversation-analyzer.js +163 -163
  168. package/detectors/index.js +84 -84
  169. package/detectors/standards-generator.js +275 -275
  170. package/detectors/structure-detector.js +245 -250
  171. package/docs/README.md +144 -149
  172. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
  173. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
  174. package/docs/api/scripts/collapse.js +38 -38
  175. package/docs/api/scripts/commonNav.js +28 -28
  176. package/docs/api/scripts/linenumber.js +25 -25
  177. package/docs/api/scripts/nav.js +12 -12
  178. package/docs/api/scripts/polyfill.js +3 -3
  179. package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
  180. package/docs/api/scripts/prettify/lang-css.js +2 -2
  181. package/docs/api/scripts/prettify/prettify.js +28 -28
  182. package/docs/api/scripts/search.js +98 -98
  183. package/docs/api/styles/jsdoc.css +776 -776
  184. package/docs/api/styles/prettify.css +80 -80
  185. package/docs/examples.md +328 -328
  186. package/docs/getting-started.md +301 -302
  187. package/docs/installation.md +361 -361
  188. package/docs/templates.md +418 -418
  189. package/docs/validation-checklist.md +265 -266
  190. package/package.json +80 -80
  191. package/scripts/postinstall.js +132 -132
  192. package/src/commands/advance-phase.js +183 -0
  193. package/src/commands/analyze-blazor-concurrency.js +193 -0
  194. package/src/commands/create-story.js +351 -351
  195. package/src/commands/detect-agents.js +139 -0
  196. package/src/commands/detect.js +104 -104
  197. package/src/commands/doctor.js +356 -280
  198. package/src/commands/generate.js +149 -149
  199. package/src/commands/init.js +258 -245
  200. package/src/commands/lint-fluent.js +352 -0
  201. package/src/commands/rollback-phase.js +185 -0
  202. package/src/commands/session-summary.js +291 -0
  203. package/src/commands/shard-spec.js +224 -224
  204. package/src/commands/sprint-status.js +250 -250
  205. package/src/commands/state.js +333 -333
  206. package/src/commands/sync.js +167 -167
  207. package/src/commands/task.js +78 -0
  208. package/src/commands/troubleshoot.js +222 -0
  209. package/src/commands/update.js +192 -159
  210. package/src/commands/validate-blazor-state.js +210 -0
  211. package/src/commands/validate-blazor.js +156 -0
  212. package/src/commands/validate-css.js +84 -0
  213. package/src/commands/validate-phase.js +221 -0
  214. package/src/lib/blazor-concurrency-analyzer.js +288 -0
  215. package/src/lib/blazor-state-validator.js +291 -0
  216. package/src/lib/blazor-validator.js +374 -0
  217. package/src/lib/complexity-analyzer.js +441 -292
  218. package/src/lib/continuous-validator.js +421 -0
  219. package/src/lib/css-validator.js +352 -0
  220. package/src/lib/decision-constraint-loader.js +109 -0
  221. package/src/lib/design-system-generator.js +298 -298
  222. package/src/lib/learning-system.js +520 -0
  223. package/src/lib/mockup-generator.js +366 -0
  224. package/src/lib/recap-generator.js +205 -0
  225. package/src/lib/state-manager.js +397 -340
  226. package/src/lib/troubleshoot-grep.js +194 -0
  227. package/src/lib/troubleshoot-index.js +144 -0
  228. package/src/lib/ui-detector.js +350 -0
  229. package/src/lib/validation-runner.js +231 -0
  230. package/src/lib/validators/architecture-validator.js +387 -0
  231. package/src/lib/validators/contract-compliance-validator.js +273 -0
  232. package/src/lib/validators/package-validator.js +360 -0
  233. package/src/lib/validators/ui-contrast-validator.js +422 -0
  234. package/src/utils/file-copier.js +179 -139
  235. package/src/utils/logger.js +32 -32
  236. package/src/utils/version-checker.js +175 -175
  237. package/content/.claude/commands/morph-costs.md +0 -206
  238. package/content/.claude/commands/morph-tasks.md +0 -319
  239. package/content/.claude/skills/specialists/cost-guardian.md +0 -110
  240. package/content/.claude/skills/stacks/shopify.md +0 -445
  241. package/content/.morph/config/azure-pricing.json +0 -70
  242. package/content/.morph/config/azure-pricing.schema.json +0 -50
  243. package/content/.morph/hooks/pre-commit-costs.sh +0 -91
  244. package/docs/api/cost-calculator.js.html +0 -513
  245. package/docs/api/design-system-generator.js.html +0 -382
  246. package/docs/api/global.html +0 -5263
  247. package/docs/api/index.html +0 -96
  248. package/docs/api/state-manager.js.html +0 -423
  249. package/src/commands/cost.js +0 -181
  250. package/src/commands/update-pricing.js +0 -206
  251. package/src/lib/cost-calculator.js +0 -429
@@ -1,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*