@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,185 +1,185 @@
1
- # Multi-Agent System - Tasks
2
-
3
- ## Fase 1: Setup do Projeto
4
-
5
- | ID | Task | Dependências | Estimativa |
6
- |----|------|--------------|------------|
7
- | T001 | Criar solution e projetos | - | S |
8
- | T002 | Configurar packages (Semantic Kernel, etc) | T001 | S |
9
- | T003 | Configurar appsettings.json | T001 | S |
10
- | T004 | Criar estrutura de pastas | T001 | S |
11
-
12
- ## Fase 2: Infrastructure Layer
13
-
14
- | ID | Task | Dependências | Estimativa |
15
- |----|------|--------------|------------|
16
- | T005 | Implementar AzureOpenAIService | T002 | M |
17
- | T006 | Implementar EmbeddingService | T005 | M |
18
- | T007 | Implementar InMemoryVectorStore | T006 | M |
19
- | T008 | Implementar ConversationStore (in-memory) | T002 | M |
20
-
21
- ## Fase 3: Plugin Layer
22
-
23
- | ID | Task | Dependências | Estimativa |
24
- |----|------|--------------|------------|
25
- | T009 | Criar WebSearchPlugin | T005 | M |
26
- | T010 | Configurar Bing Search API | T009 | S |
27
- | T011 | Criar DocumentPlugin | T007 | M |
28
- | T012 | Criar CalculatorPlugin | T005 | S |
29
- | T013 | Criar DateTimePlugin | T005 | S |
30
-
31
- ## Fase 4: Agent Layer - Base
32
-
33
- | ID | Task | Dependências | Estimativa |
34
- |----|------|--------------|------------|
35
- | T014 | Criar BaseAgent abstract class | T005 | M |
36
- | T015 | Implementar AgentFactory | T014 | M |
37
- | T016 | Criar AgentContext (DI scope) | T015 | M |
38
-
39
- ## Fase 5: Agent Layer - Agents
40
-
41
- | ID | Task | Dependências | Estimativa |
42
- |----|------|--------------|------------|
43
- | T017 | Implementar ResearchAgent | T014, T009, T011 | L |
44
- | T018 | Implementar AnalysisAgent | T014, T012 | M |
45
- | T019 | Implementar WritingAgent | T014 | M |
46
- | T020 | Implementar OrchestratorAgent | T017-T019 | L |
47
-
48
- ## Fase 6: Orchestration Layer
49
-
50
- | ID | Task | Dependências | Estimativa |
51
- |----|------|--------------|------------|
52
- | T021 | Implementar TaskDecomposer | T020 | M |
53
- | T022 | Implementar AgentRouter | T015, T021 | M |
54
- | T023 | Implementar ResultAggregator | T020 | M |
55
- | T024 | Implementar Orchestrator | T021-T023 | L |
56
-
57
- ## Fase 7: Memory Layer
58
-
59
- | ID | Task | Dependências | Estimativa |
60
- |----|------|--------------|------------|
61
- | T025 | Implementar ConversationMemory | T008 | M |
62
- | T026 | Implementar SemanticMemory | T007 | M |
63
- | T027 | Integrar memória com Orchestrator | T024-T026 | M |
64
-
65
- ## Fase 8: API Layer
66
-
67
- | ID | Task | Dependências | Estimativa |
68
- |----|------|--------------|------------|
69
- | T028 | Configurar Program.cs base | T001 | M |
70
- | T029 | Criar ChatEndpoints | T024, T027 | M |
71
- | T030 | Implementar streaming (SSE) | T029 | M |
72
- | T031 | Criar AgentEndpoints | T015 | S |
73
- | T032 | Criar HealthEndpoints | T028 | S |
74
- | T033 | Configurar API Key auth | T028 | S |
75
-
76
- ## Fase 9: Error Handling & Resilience
77
-
78
- | ID | Task | Dependências | Estimativa |
79
- |----|------|--------------|------------|
80
- | T034 | Implementar retry policies | T024 | M |
81
- | T035 | Implementar circuit breaker | T034 | M |
82
- | T036 | Implementar timeout handling | T024 | M |
83
- | T037 | Criar error logging middleware | T028 | S |
84
-
85
- ## Fase 10: Monitoring & Metrics
86
-
87
- | ID | Task | Dependências | Estimativa |
88
- |----|------|--------------|------------|
89
- | T038 | Implementar token tracking | T005 | M |
90
- | T039 | Implementar usage metrics | T038 | M |
91
- | T040 | Criar cost estimation | T039 | S |
92
- | T041 | Integrar com App Insights | T028 | M |
93
-
94
- ## Fase 11: Infrastructure (IaC)
95
-
96
- | ID | Task | Dependências | Estimativa |
97
- |----|------|--------------|------------|
98
- | T042 | Criar main.bicep | - | M |
99
- | T043 | Configurar Container App | T042 | M |
100
- | T044 | Configurar Azure OpenAI (manual) | - | M |
101
- | T045 | Configurar Key Vault | T042 | S |
102
- | T046 | Configurar App Insights | T042 | S |
103
-
104
- ## Fase 12: Testes
105
-
106
- | ID | Task | Dependências | Estimativa |
107
- |----|------|--------------|------------|
108
- | T047 | Criar testes unitários - Plugins | T009-T013 | M |
109
- | T048 | Criar testes unitários - Agents | T017-T020 | M |
110
- | T049 | Criar testes integração - Orchestrator | T024 | L |
111
- | T050 | Criar testes E2E - API | T029-T032 | L |
112
-
113
- ## Fase 13: Documentação
114
-
115
- | ID | Task | Dependências | Estimativa |
116
- |----|------|--------------|------------|
117
- | T051 | Documentar APIs (OpenAPI) | T029-T032 | M |
118
- | T052 | Criar guia de extensibilidade | T014-T020 | M |
119
- | T053 | Criar exemplos de uso | T029 | M |
120
-
121
- ## Checkpoints
122
-
123
- | Checkpoint | Após Tasks | Validação |
124
- |------------|------------|-----------|
125
- | CP1 | T004 | Projeto compila |
126
- | CP2 | T008 | Infrastructure funcionando |
127
- | CP3 | T013 | Plugins funcionando |
128
- | CP4 | T020 | Agents funcionando |
129
- | CP5 | T024 | Orchestrator funcionando |
130
- | CP6 | T027 | Memória integrada |
131
- | CP7 | T033 | API completa |
132
- | CP8 | T037 | Error handling completo |
133
- | CP9 | T041 | Monitoring ativo |
134
- | CP10 | T046 | IaC pronto |
135
- | CP11 | T053 | Projeto completo |
136
-
137
- ## Legenda
138
-
139
- - **S** = Small (< 1h)
140
- - **M** = Medium (1-3h)
141
- - **L** = Large (3-8h)
142
-
143
- ## Dependências Críticas
144
-
145
- ```
146
- Azure OpenAI Setup (T044) - BLOQUEANTE para todos os testes reais
147
-
148
- T005 (LLM Service) → T014 (BaseAgent) → T017-T020 (Agents) → T024 (Orchestrator)
149
-
150
- T006 (Embedding) → T007 (VectorStore) → T011 (DocumentPlugin)
151
-
152
- T009 (WebSearch) → T017 (ResearchAgent)
153
- ```
154
-
155
- ## Ordem de Execução Recomendada
156
-
157
- ### Fase Paralela 1 (Setup)
158
- - T001-T004 (Setup)
159
- - T042 (IaC base)
160
-
161
- ### Fase Paralela 2 (Foundation)
162
- - T005-T008 (Infrastructure)
163
- - T044 (Azure OpenAI manual)
164
-
165
- ### Fase Paralela 3 (Building Blocks)
166
- - T009-T013 (Plugins)
167
- - T014-T016 (Agent base)
168
-
169
- ### Fase Sequencial 4 (Core)
170
- - T017-T020 (Agents)
171
- - T021-T024 (Orchestration)
172
- - T025-T027 (Memory)
173
-
174
- ### Fase Paralela 5 (API + Supporting)
175
- - T028-T033 (API)
176
- - T034-T037 (Resilience)
177
- - T038-T041 (Monitoring)
178
-
179
- ### Fase Final
180
- - T043-T046 (IaC complete)
181
- - T047-T053 (Tests + Docs)
182
-
183
- ---
184
-
185
- *MORPH-SPEC by Polymorphism Tech*
1
+ # Multi-Agent System - Tasks
2
+
3
+ ## Fase 1: Setup do Projeto
4
+
5
+ | ID | Task | Dependências | Estimativa |
6
+ |----|------|--------------|------------|
7
+ | T001 | Criar solution e projetos | - | S |
8
+ | T002 | Configurar packages (Semantic Kernel, etc) | T001 | S |
9
+ | T003 | Configurar appsettings.json | T001 | S |
10
+ | T004 | Criar estrutura de pastas | T001 | S |
11
+
12
+ ## Fase 2: Infrastructure Layer
13
+
14
+ | ID | Task | Dependências | Estimativa |
15
+ |----|------|--------------|------------|
16
+ | T005 | Implementar AzureOpenAIService | T002 | M |
17
+ | T006 | Implementar EmbeddingService | T005 | M |
18
+ | T007 | Implementar InMemoryVectorStore | T006 | M |
19
+ | T008 | Implementar ConversationStore (in-memory) | T002 | M |
20
+
21
+ ## Fase 3: Plugin Layer
22
+
23
+ | ID | Task | Dependências | Estimativa |
24
+ |----|------|--------------|------------|
25
+ | T009 | Criar WebSearchPlugin | T005 | M |
26
+ | T010 | Configurar Bing Search API | T009 | S |
27
+ | T011 | Criar DocumentPlugin | T007 | M |
28
+ | T012 | Criar CalculatorPlugin | T005 | S |
29
+ | T013 | Criar DateTimePlugin | T005 | S |
30
+
31
+ ## Fase 4: Agent Layer - Base
32
+
33
+ | ID | Task | Dependências | Estimativa |
34
+ |----|------|--------------|------------|
35
+ | T014 | Criar BaseAgent abstract class | T005 | M |
36
+ | T015 | Implementar AgentFactory | T014 | M |
37
+ | T016 | Criar AgentContext (DI scope) | T015 | M |
38
+
39
+ ## Fase 5: Agent Layer - Agents
40
+
41
+ | ID | Task | Dependências | Estimativa |
42
+ |----|------|--------------|------------|
43
+ | T017 | Implementar ResearchAgent | T014, T009, T011 | L |
44
+ | T018 | Implementar AnalysisAgent | T014, T012 | M |
45
+ | T019 | Implementar WritingAgent | T014 | M |
46
+ | T020 | Implementar OrchestratorAgent | T017-T019 | L |
47
+
48
+ ## Fase 6: Orchestration Layer
49
+
50
+ | ID | Task | Dependências | Estimativa |
51
+ |----|------|--------------|------------|
52
+ | T021 | Implementar TaskDecomposer | T020 | M |
53
+ | T022 | Implementar AgentRouter | T015, T021 | M |
54
+ | T023 | Implementar ResultAggregator | T020 | M |
55
+ | T024 | Implementar Orchestrator | T021-T023 | L |
56
+
57
+ ## Fase 7: Memory Layer
58
+
59
+ | ID | Task | Dependências | Estimativa |
60
+ |----|------|--------------|------------|
61
+ | T025 | Implementar ConversationMemory | T008 | M |
62
+ | T026 | Implementar SemanticMemory | T007 | M |
63
+ | T027 | Integrar memória com Orchestrator | T024-T026 | M |
64
+
65
+ ## Fase 8: API Layer
66
+
67
+ | ID | Task | Dependências | Estimativa |
68
+ |----|------|--------------|------------|
69
+ | T028 | Configurar Program.cs base | T001 | M |
70
+ | T029 | Criar ChatEndpoints | T024, T027 | M |
71
+ | T030 | Implementar streaming (SSE) | T029 | M |
72
+ | T031 | Criar AgentEndpoints | T015 | S |
73
+ | T032 | Criar HealthEndpoints | T028 | S |
74
+ | T033 | Configurar API Key auth | T028 | S |
75
+
76
+ ## Fase 9: Error Handling & Resilience
77
+
78
+ | ID | Task | Dependências | Estimativa |
79
+ |----|------|--------------|------------|
80
+ | T034 | Implementar retry policies | T024 | M |
81
+ | T035 | Implementar circuit breaker | T034 | M |
82
+ | T036 | Implementar timeout handling | T024 | M |
83
+ | T037 | Criar error logging middleware | T028 | S |
84
+
85
+ ## Fase 10: Monitoring & Metrics
86
+
87
+ | ID | Task | Dependências | Estimativa |
88
+ |----|------|--------------|------------|
89
+ | T038 | Implementar token tracking | T005 | M |
90
+ | T039 | Implementar usage metrics | T038 | M |
91
+ | T040 | Criar cost estimation | T039 | S |
92
+ | T041 | Integrar com App Insights | T028 | M |
93
+
94
+ ## Fase 11: Infrastructure (IaC)
95
+
96
+ | ID | Task | Dependências | Estimativa |
97
+ |----|------|--------------|------------|
98
+ | T042 | Criar main.bicep | - | M |
99
+ | T043 | Configurar Container App | T042 | M |
100
+ | T044 | Configurar Azure OpenAI (manual) | - | M |
101
+ | T045 | Configurar Key Vault | T042 | S |
102
+ | T046 | Configurar App Insights | T042 | S |
103
+
104
+ ## Fase 12: Testes
105
+
106
+ | ID | Task | Dependências | Estimativa |
107
+ |----|------|--------------|------------|
108
+ | T047 | Criar testes unitários - Plugins | T009-T013 | M |
109
+ | T048 | Criar testes unitários - Agents | T017-T020 | M |
110
+ | T049 | Criar testes integração - Orchestrator | T024 | L |
111
+ | T050 | Criar testes E2E - API | T029-T032 | L |
112
+
113
+ ## Fase 13: Documentação
114
+
115
+ | ID | Task | Dependências | Estimativa |
116
+ |----|------|--------------|------------|
117
+ | T051 | Documentar APIs (OpenAPI) | T029-T032 | M |
118
+ | T052 | Criar guia de extensibilidade | T014-T020 | M |
119
+ | T053 | Criar exemplos de uso | T029 | M |
120
+
121
+ ## Checkpoints
122
+
123
+ | Checkpoint | Após Tasks | Validação |
124
+ |------------|------------|-----------|
125
+ | CP1 | T004 | Projeto compila |
126
+ | CP2 | T008 | Infrastructure funcionando |
127
+ | CP3 | T013 | Plugins funcionando |
128
+ | CP4 | T020 | Agents funcionando |
129
+ | CP5 | T024 | Orchestrator funcionando |
130
+ | CP6 | T027 | Memória integrada |
131
+ | CP7 | T033 | API completa |
132
+ | CP8 | T037 | Error handling completo |
133
+ | CP9 | T041 | Monitoring ativo |
134
+ | CP10 | T046 | IaC pronto |
135
+ | CP11 | T053 | Projeto completo |
136
+
137
+ ## Legenda
138
+
139
+ - **S** = Small (< 1h)
140
+ - **M** = Medium (1-3h)
141
+ - **L** = Large (3-8h)
142
+
143
+ ## Dependências Críticas
144
+
145
+ ```
146
+ Azure OpenAI Setup (T044) - BLOQUEANTE para todos os testes reais
147
+
148
+ T005 (LLM Service) → T014 (BaseAgent) → T017-T020 (Agents) → T024 (Orchestrator)
149
+
150
+ T006 (Embedding) → T007 (VectorStore) → T011 (DocumentPlugin)
151
+
152
+ T009 (WebSearch) → T017 (ResearchAgent)
153
+ ```
154
+
155
+ ## Ordem de Execução Recomendada
156
+
157
+ ### Fase Paralela 1 (Setup)
158
+ - T001-T004 (Setup)
159
+ - T042 (IaC base)
160
+
161
+ ### Fase Paralela 2 (Foundation)
162
+ - T005-T008 (Infrastructure)
163
+ - T044 (Azure OpenAI manual)
164
+
165
+ ### Fase Paralela 3 (Building Blocks)
166
+ - T009-T013 (Plugins)
167
+ - T014-T016 (Agent base)
168
+
169
+ ### Fase Sequencial 4 (Core)
170
+ - T017-T020 (Agents)
171
+ - T021-T024 (Orchestration)
172
+ - T025-T027 (Memory)
173
+
174
+ ### Fase Paralela 5 (API + Supporting)
175
+ - T028-T033 (API)
176
+ - T034-T037 (Resilience)
177
+ - T038-T041 (Monitoring)
178
+
179
+ ### Fase Final
180
+ - T043-T046 (IaC complete)
181
+ - T047-T053 (Tests + Docs)
182
+
183
+ ---
184
+
185
+ *MORPH-SPEC by Polymorphism Tech*
@@ -0,0 +1,158 @@
1
+ # Decisões Arquiteturais - Scheduled Reports
2
+
3
+ > Exemplo real de decisions.md gerado pelo MORPH-SPEC
4
+
5
+ ---
6
+
7
+ ## ADR-001: Biblioteca de Background Jobs
8
+
9
+ **Data:** 2024-01-15
10
+ **Status:** Aceito
11
+ **Contexto:** Precisamos executar relatórios em horários agendados.
12
+
13
+ ### Opções Consideradas
14
+
15
+ | Opção | Pros | Cons |
16
+ |-------|------|------|
17
+ | **Hangfire** | Dashboard, retry, SQL storage | Licença para recursos avançados |
18
+ | Azure Functions (Timer) | Serverless, escalável | Mais complexo, cold start |
19
+ | Quartz.NET | Open source completo | Sem dashboard built-in |
20
+
21
+ ### Decisão
22
+
23
+ **Hangfire** - Já usado no projeto, dashboard útil para monitoramento, integração simples com DI.
24
+
25
+ ### Consequências
26
+ - ✅ Fácil implementação
27
+ - ✅ Dashboard para operações
28
+ - ⚠️ Considerar licença Pro se precisar de batches
29
+
30
+ ---
31
+
32
+ ## ADR-002: Geração de PDF
33
+
34
+ **Data:** 2024-01-15
35
+ **Status:** Aceito
36
+ **Contexto:** Precisamos gerar PDFs dos relatórios.
37
+
38
+ ### Opções Consideradas
39
+
40
+ | Opção | Pros | Cons |
41
+ |-------|------|------|
42
+ | **QuestPDF** | Fluent API, .NET nativo, gratuito | Mais novo, menos exemplos |
43
+ | iTextSharp | Maduro, muitos exemplos | Licença AGPL (viral) |
44
+ | PuppeteerSharp | HTML→PDF | Requer Chrome, pesado |
45
+
46
+ ### Decisão
47
+
48
+ **QuestPDF** - API moderna, totalmente .NET, licença MIT.
49
+
50
+ ### Consequências
51
+ - ✅ Código limpo e legível
52
+ - ✅ Sem dependências externas
53
+ - ⚠️ Curva de aprendizado para layouts complexos
54
+
55
+ ---
56
+
57
+ ## ADR-003: Biblioteca UI
58
+
59
+ **Data:** 2024-01-15
60
+ **Status:** Aceito
61
+ **Contexto:** Componentes UI para as telas de relatórios.
62
+
63
+ ### Opções Consideradas
64
+
65
+ | Opção | Pros | Cons |
66
+ |-------|------|------|
67
+ | **Fluent UI Blazor** | Já no projeto, design MS | Menos componentes |
68
+ | MudBlazor | Mais componentes | Adicionar dependência |
69
+
70
+ ### Decisão
71
+
72
+ **Fluent UI Blazor** - Já instalado no projeto, manter consistência.
73
+
74
+ ### Consequências
75
+ - ✅ Sem nova dependência
76
+ - ✅ Visual consistente
77
+ - ⚠️ Pode precisar criar componentes custom
78
+
79
+ ---
80
+
81
+ ## ADR-004: Armazenamento de Arquivos
82
+
83
+ **Data:** 2024-01-15
84
+ **Status:** Aceito
85
+ **Contexto:** Onde armazenar os PDFs/Excels gerados.
86
+
87
+ ### Opções Consideradas
88
+
89
+ | Opção | Pros | Cons |
90
+ |-------|------|------|
91
+ | **Azure Blob Storage** | Escalável, barato, SAS tokens | Requer setup |
92
+ | Sistema de arquivos | Simples | Não escala, perde em redeploy |
93
+ | Database (BLOB) | Tudo junto | Performance ruim |
94
+
95
+ ### Decisão
96
+
97
+ **Azure Blob Storage** - Já usado para outros arquivos, suporta SAS tokens para links temporários.
98
+
99
+ ### Consequências
100
+ - ✅ Escalável
101
+ - ✅ Links com expiração
102
+ - ⚠️ Custo adicional (baixo)
103
+
104
+ ---
105
+
106
+ ## ADR-005: Padrão CQRS
107
+
108
+ **Data:** 2024-01-15
109
+ **Status:** Aceito
110
+ **Contexto:** Estruturar commands e queries.
111
+
112
+ ### Decisão
113
+
114
+ **CQRS com MediatR** - Separação clara de responsabilidades, já é o padrão do projeto.
115
+
116
+ ### Commands
117
+ - `CreateScheduledReportCommand`
118
+ - `UpdateScheduledReportCommand`
119
+ - `DeleteScheduledReportCommand`
120
+ - `ExecuteReportCommand`
121
+
122
+ ### Queries
123
+ - `GetScheduledReportByIdQuery`
124
+ - `GetScheduledReportsQuery`
125
+ - `GetReportExecutionsQuery`
126
+
127
+ ---
128
+
129
+ ## ADR-006: Estratégia de Retry
130
+
131
+ **Data:** 2024-01-15
132
+ **Status:** Aceito
133
+ **Contexto:** Como lidar com falhas na execução de jobs.
134
+
135
+ ### Decisão
136
+
137
+ **Exponential backoff com limite:**
138
+ - Retry 1: 1 minuto
139
+ - Retry 2: 5 minutos
140
+ - Retry 3: 15 minutos
141
+ - Após 3 falhas: marcar como Error, notificar admin
142
+
143
+ ```csharp
144
+ [AutomaticRetry(Attempts = 3, DelaysInSeconds = new[] { 60, 300, 900 })]
145
+ public async Task ExecuteReportJob(int reportId) { ... }
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Histórico de Mudanças
151
+
152
+ | Data | ADR | Mudança |
153
+ |------|-----|---------|
154
+ | 2024-01-15 | 001-006 | Decisões iniciais |
155
+
156
+ ---
157
+
158
+ _Gerado por MORPH-SPEC Framework_
@@ -0,0 +1,95 @@
1
+ # Proposta: Sistema de Relatórios Agendados
2
+
3
+ > Exemplo real de proposal.md gerado pelo MORPH-SPEC
4
+
5
+ ---
6
+
7
+ ## 📋 Resumo da Solicitação
8
+
9
+ O usuário solicitou um sistema para agendar e executar relatórios automaticamente, com suporte a diferentes formatos de saída (PDF, Excel) e notificação por email.
10
+
11
+ ---
12
+
13
+ ## 🎯 Análise Inicial
14
+
15
+ ### Stack Identificado
16
+ - **Backend:** .NET 8 + Blazor Server
17
+ - **Database:** SQL Server (Entity Framework Core)
18
+ - **Background Jobs:** Hangfire
19
+ - **UI:** Fluent UI Blazor (detectado no projeto)
20
+
21
+ ### Complexidade Estimada
22
+ **ALTA** - Justificativa:
23
+ - Múltiplos componentes (entidades, jobs, UI)
24
+ - Integração com sistema de email
25
+ - Geração de arquivos (PDF, Excel)
26
+ - CRON expressions para agendamento
27
+
28
+ ### Agentes Ativados
29
+ 1. 📐 Standards Architect
30
+ 2. ☁️ Azure Architect
31
+ 3. 🔥 Blazor Builder
32
+ 4. 🗄️ EF Modeler
33
+ 5. ⏰ Hangfire Orchestrator
34
+ 6. 🎨 UI/UX Designer
35
+
36
+ ---
37
+
38
+ ## 📊 Escopo Preliminar
39
+
40
+ ### Funcionalidades Core
41
+ 1. CRUD de relatórios agendados
42
+ 2. Configuração de periodicidade (CRON)
43
+ 3. Seleção de formato de saída (PDF/Excel)
44
+ 4. Execução manual e automática
45
+ 5. Histórico de execuções
46
+ 6. Notificação por email
47
+
48
+ ### Fora do Escopo (MVP)
49
+ - [ ] Dashboard com métricas de execução
50
+ - [ ] Relatórios customizáveis pelo usuário
51
+ - [ ] Integração com BI tools
52
+
53
+ ---
54
+
55
+ ## 💰 Estimativa de Custos Azure
56
+
57
+ | Recurso | SKU | Custo Estimado/mês |
58
+ |---------|-----|-------------------|
59
+ | Container App | 0.5 vCPU, 1GB | ~$15 |
60
+ | SQL Database | Basic (5 DTU) | ~$5 |
61
+ | Storage (blobs) | LRS | ~$1 |
62
+ | **Total** | | **~$21/mês** |
63
+
64
+ ---
65
+
66
+ ## ⏱️ Estimativa de Esforço
67
+
68
+ | Fase | Tasks Estimadas |
69
+ |------|-----------------|
70
+ | Design | 2-3 |
71
+ | Entities + EF | 3-4 |
72
+ | Handlers/Services | 4-5 |
73
+ | Background Jobs | 2-3 |
74
+ | UI Components | 4-5 |
75
+ | Testes | 3-4 |
76
+ | **Total** | **18-24 tasks** |
77
+
78
+ ---
79
+
80
+ ## ⛔ PAUSA OBRIGATÓRIA
81
+
82
+ **Próximos passos sugeridos:**
83
+
84
+ 1. ✅ **Aprovar proposta e prosseguir para Setup**
85
+ Carregar contexto completo e ativar agentes detectados
86
+
87
+ 2. ❓ **Esclarecer escopo**
88
+ Você precisa de dashboard de métricas no MVP? Ou apenas a lista de relatórios?
89
+
90
+ 3. 💡 **Considerar MVP mais enxuto**
91
+ Começar apenas com PDF e adicionar Excel em iteração futura?
92
+
93
+ ---
94
+
95
+ _Gerado por MORPH-SPEC Framework_