@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,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*