@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.
- package/CLAUDE.md +314 -1673
- package/LICENSE +72 -72
- package/README.md +515 -516
- package/bin/detect-agents.js +225 -225
- package/bin/morph-spec.js +358 -173
- package/bin/render-template.js +302 -302
- package/bin/semantic-detect-agents.js +246 -246
- package/bin/task-manager.js +429 -0
- package/bin/validate-agents-skills.js +251 -251
- package/bin/validate-agents.js +69 -69
- package/bin/validate-phase.js +263 -263
- package/bin/validate.js +369 -0
- package/content/.azure/README.md +293 -293
- package/content/.azure/docs/azure-devops-setup.md +454 -454
- package/content/.azure/docs/branch-strategy.md +398 -398
- package/content/.azure/docs/local-development.md +515 -515
- package/content/.azure/pipelines/pipeline-variables.yml +34 -34
- package/content/.azure/pipelines/prod-pipeline.yml +319 -319
- package/content/.azure/pipelines/staging-pipeline.yml +234 -234
- package/content/.azure/pipelines/templates/build-dotnet.yml +75 -75
- package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -94
- package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -120
- package/content/.azure/pipelines/templates/infra-deploy.yml +90 -90
- package/content/.claude/commands/morph-apply.md +221 -158
- package/content/.claude/commands/morph-archive.md +79 -79
- package/content/.claude/commands/morph-infra.md +209 -209
- package/content/.claude/commands/morph-preflight.md +227 -0
- package/content/.claude/commands/morph-proposal.md +122 -101
- package/content/.claude/commands/morph-status.md +86 -86
- package/content/.claude/commands/morph-troubleshoot.md +122 -0
- package/content/.claude/settings.local.json +15 -15
- package/content/.claude/skills/checklists/code-review.md +226 -0
- package/content/.claude/skills/checklists/morph-checklist.md +117 -0
- package/content/.claude/skills/checklists/simulation-checklist.md +77 -0
- package/content/.claude/skills/infra/bicep-architect.md +126 -419
- package/content/.claude/skills/infra/container-specialist.md +131 -437
- package/content/.claude/skills/infra/devops-engineer.md +119 -405
- package/content/.claude/skills/integrations/asaas-financial.md +130 -333
- package/content/.claude/skills/integrations/azure-identity.md +142 -309
- package/content/.claude/skills/integrations/clerk-auth.md +108 -290
- package/content/.claude/skills/integrations/resend-email.md +119 -0
- package/content/.claude/skills/specialists/ai-system-architect.md +192 -604
- package/content/.claude/skills/specialists/azure-architect.md +142 -142
- package/content/.claude/skills/specialists/code-analyzer.md +235 -0
- package/content/.claude/skills/specialists/dotnet-senior.md +287 -0
- package/content/.claude/skills/specialists/ef-modeler.md +113 -200
- package/content/.claude/skills/specialists/hangfire-orchestrator.md +126 -245
- package/content/.claude/skills/specialists/ms-agent-expert.md +109 -263
- package/content/.claude/skills/specialists/po-pm-advisor.md +197 -197
- package/content/.claude/skills/specialists/standards-architect.md +156 -78
- package/content/.claude/skills/specialists/testing-specialist.md +126 -0
- package/content/.claude/skills/specialists/ui-ux-designer.md +191 -1060
- package/content/.claude/skills/stacks/dotnet-blazor.md +210 -588
- package/content/.claude/skills/stacks/dotnet-nextjs.md +154 -402
- package/content/.claude/skills/workflows/morph-replicate.md +213 -0
- package/content/.claude/{commands/morph-clarify.md → skills/workflows/phase-clarify.md} +5 -58
- package/content/.claude/{commands/morph-design.md → skills/workflows/phase-design.md} +16 -86
- package/content/.claude/{commands/morph-setup.md → skills/workflows/phase-setup.md} +9 -17
- package/content/.claude/skills/workflows/phase-tasks.md +164 -0
- package/content/.claude/{commands/morph-uiux.md → skills/workflows/phase-uiux.md} +15 -88
- package/content/.morph/.morphversion +5 -5
- package/content/.morph/archive/.gitkeep +25 -25
- package/content/.morph/config/agents.json +378 -242
- package/content/.morph/config/config.template.json +89 -108
- package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
- package/content/.morph/docs/workflows/design-impl.md +37 -0
- package/content/.morph/docs/workflows/fast-track.md +29 -0
- package/content/.morph/docs/workflows/full-morph.md +76 -0
- package/content/.morph/docs/workflows/standard.md +44 -0
- package/content/.morph/docs/workflows/ui-refresh.md +39 -0
- package/content/.morph/examples/api-nextjs/README.md +241 -241
- package/content/.morph/examples/api-nextjs/contracts.ts +307 -307
- package/content/.morph/examples/api-nextjs/spec.md +399 -399
- package/content/.morph/examples/api-nextjs/tasks.md +168 -168
- package/content/.morph/examples/micro-saas/README.md +125 -125
- package/content/.morph/examples/micro-saas/contracts.cs +358 -358
- package/content/.morph/examples/micro-saas/decisions.md +246 -246
- package/content/.morph/examples/micro-saas/spec.md +236 -236
- package/content/.morph/examples/micro-saas/tasks.md +150 -150
- package/content/.morph/examples/multi-agent/README.md +309 -309
- package/content/.morph/examples/multi-agent/contracts.cs +433 -433
- package/content/.morph/examples/multi-agent/spec.md +479 -479
- package/content/.morph/examples/multi-agent/tasks.md +185 -185
- package/content/.morph/examples/scheduled-reports/decisions.md +158 -0
- package/content/.morph/examples/scheduled-reports/proposal.md +95 -0
- package/content/.morph/examples/scheduled-reports/spec.md +267 -0
- package/content/.morph/examples/state-v3.json +188 -0
- package/content/.morph/features/.gitkeep +25 -25
- package/content/.morph/hooks/README.md +190 -239
- package/content/.morph/hooks/pre-commit-agents.sh +24 -24
- package/content/.morph/hooks/pre-commit-all.sh +48 -48
- package/content/.morph/hooks/pre-commit-specs.sh +49 -49
- package/content/.morph/hooks/pre-commit-tests.sh +60 -60
- package/content/.morph/project.md +160 -160
- package/content/.morph/schemas/agent.schema.json +296 -296
- package/content/.morph/schemas/tasks.schema.json +220 -0
- package/content/.morph/specs/.gitkeep +20 -20
- package/content/.morph/standards/agent-framework-blazor-ui.md +359 -0
- package/content/.morph/standards/agent-framework-production.md +410 -0
- package/content/.morph/standards/agent-framework-setup.md +413 -453
- package/content/.morph/standards/agent-framework-workflows.md +349 -0
- package/content/.morph/standards/architecture.md +325 -325
- package/content/.morph/standards/azure.md +605 -379
- package/content/.morph/standards/coding.md +377 -377
- package/content/.morph/standards/dotnet10-migration.md +520 -494
- package/content/.morph/standards/fluent-ui-setup.md +590 -590
- package/content/.morph/standards/migration-guide.md +514 -514
- package/content/.morph/standards/passkeys-auth.md +423 -423
- package/content/.morph/standards/vector-search-rag.md +536 -536
- package/content/.morph/state.json +17 -17
- package/content/.morph/templates/FluentDesignTheme.cs +149 -149
- package/content/.morph/templates/MudTheme.cs +281 -281
- package/content/.morph/templates/agent.cs +163 -172
- package/content/.morph/templates/clarify-questions.md +159 -0
- package/content/.morph/templates/component.razor +239 -239
- package/content/.morph/templates/contracts/Commands.cs +74 -0
- package/content/.morph/templates/contracts/Entities.cs +25 -0
- package/content/.morph/templates/contracts/Queries.cs +74 -0
- package/content/.morph/templates/contracts/README.md +74 -0
- package/content/.morph/templates/contracts.cs +217 -217
- package/content/.morph/templates/decisions.md +123 -106
- package/content/.morph/templates/design-system.css +226 -226
- package/content/.morph/templates/infra/.dockerignore.example +89 -89
- package/content/.morph/templates/infra/Dockerfile.example +82 -82
- package/content/.morph/templates/infra/README.md +286 -286
- package/content/.morph/templates/infra/app-insights.bicep +63 -63
- package/content/.morph/templates/infra/app-service.bicep +164 -164
- package/content/.morph/templates/infra/container-app-env.bicep +49 -49
- package/content/.morph/templates/infra/container-app.bicep +156 -156
- package/content/.morph/templates/infra/deploy-checklist.md +426 -0
- package/content/.morph/templates/infra/deploy.ps1 +229 -229
- package/content/.morph/templates/infra/deploy.sh +208 -208
- package/content/.morph/templates/infra/key-vault.bicep +91 -91
- package/content/.morph/templates/infra/main.bicep +189 -189
- package/content/.morph/templates/infra/parameters.dev.json +29 -29
- package/content/.morph/templates/infra/parameters.prod.json +29 -29
- package/content/.morph/templates/infra/parameters.staging.json +29 -29
- package/content/.morph/templates/infra/sql-database.bicep +103 -103
- package/content/.morph/templates/infra/storage.bicep +106 -106
- package/content/.morph/templates/integrations/asaas-client.cs +387 -387
- package/content/.morph/templates/integrations/asaas-webhook.cs +351 -351
- package/content/.morph/templates/integrations/azure-identity-config.cs +288 -288
- package/content/.morph/templates/integrations/clerk-config.cs +258 -258
- package/content/.morph/templates/job.cs +171 -171
- package/content/.morph/templates/migration.cs +83 -83
- package/content/.morph/templates/proposal.md +141 -155
- package/content/.morph/templates/recap.md +94 -105
- package/content/.morph/templates/repository.cs +141 -141
- package/content/.morph/templates/saas/subscription.cs +347 -347
- package/content/.morph/templates/saas/tenant.cs +338 -338
- package/content/.morph/templates/service.cs +139 -139
- package/content/.morph/templates/simulation.md +353 -0
- package/content/.morph/templates/spec.md +149 -148
- package/content/.morph/templates/sprint-status.yaml +68 -68
- package/content/.morph/templates/state.template.json +222 -222
- package/content/.morph/templates/story.md +143 -143
- package/content/.morph/templates/tasks.md +257 -235
- package/content/.morph/templates/test.cs +239 -239
- package/content/.morph/templates/ui-components.md +362 -276
- package/content/.morph/templates/ui-design-system.md +286 -286
- package/content/.morph/templates/ui-flows.md +336 -336
- package/content/.morph/templates/ui-mockups.md +133 -133
- package/content/.morph/test-infra/example.bicep +59 -59
- package/content/CLAUDE.md +150 -442
- package/content/README.md +79 -79
- package/detectors/config-detector.js +223 -223
- package/detectors/conversation-analyzer.js +163 -163
- package/detectors/index.js +84 -84
- package/detectors/standards-generator.js +275 -275
- package/detectors/structure-detector.js +245 -250
- package/docs/README.md +144 -149
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
- package/docs/api/scripts/collapse.js +38 -38
- package/docs/api/scripts/commonNav.js +28 -28
- package/docs/api/scripts/linenumber.js +25 -25
- package/docs/api/scripts/nav.js +12 -12
- package/docs/api/scripts/polyfill.js +3 -3
- package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
- package/docs/api/scripts/prettify/lang-css.js +2 -2
- package/docs/api/scripts/prettify/prettify.js +28 -28
- package/docs/api/scripts/search.js +98 -98
- package/docs/api/styles/jsdoc.css +776 -776
- package/docs/api/styles/prettify.css +80 -80
- package/docs/examples.md +328 -328
- package/docs/getting-started.md +301 -302
- package/docs/installation.md +361 -361
- package/docs/templates.md +418 -418
- package/docs/validation-checklist.md +265 -266
- package/package.json +80 -80
- package/scripts/postinstall.js +132 -132
- package/src/commands/advance-phase.js +183 -0
- package/src/commands/analyze-blazor-concurrency.js +193 -0
- package/src/commands/create-story.js +351 -351
- package/src/commands/detect-agents.js +139 -0
- package/src/commands/detect.js +104 -104
- package/src/commands/doctor.js +356 -280
- package/src/commands/generate.js +149 -149
- package/src/commands/init.js +258 -245
- package/src/commands/lint-fluent.js +352 -0
- package/src/commands/rollback-phase.js +185 -0
- package/src/commands/session-summary.js +291 -0
- package/src/commands/shard-spec.js +224 -224
- package/src/commands/sprint-status.js +250 -250
- package/src/commands/state.js +333 -333
- package/src/commands/sync.js +167 -167
- package/src/commands/task.js +78 -0
- package/src/commands/troubleshoot.js +222 -0
- package/src/commands/update.js +192 -159
- package/src/commands/validate-blazor-state.js +210 -0
- package/src/commands/validate-blazor.js +156 -0
- package/src/commands/validate-css.js +84 -0
- package/src/commands/validate-phase.js +221 -0
- package/src/lib/blazor-concurrency-analyzer.js +288 -0
- package/src/lib/blazor-state-validator.js +291 -0
- package/src/lib/blazor-validator.js +374 -0
- package/src/lib/complexity-analyzer.js +441 -292
- package/src/lib/continuous-validator.js +421 -0
- package/src/lib/css-validator.js +352 -0
- package/src/lib/decision-constraint-loader.js +109 -0
- package/src/lib/design-system-generator.js +298 -298
- package/src/lib/learning-system.js +520 -0
- package/src/lib/mockup-generator.js +366 -0
- package/src/lib/recap-generator.js +205 -0
- package/src/lib/state-manager.js +397 -340
- package/src/lib/troubleshoot-grep.js +194 -0
- package/src/lib/troubleshoot-index.js +144 -0
- package/src/lib/ui-detector.js +350 -0
- package/src/lib/validation-runner.js +231 -0
- package/src/lib/validators/architecture-validator.js +387 -0
- package/src/lib/validators/contract-compliance-validator.js +273 -0
- package/src/lib/validators/package-validator.js +360 -0
- package/src/lib/validators/ui-contrast-validator.js +422 -0
- package/src/utils/file-copier.js +179 -139
- package/src/utils/logger.js +32 -32
- package/src/utils/version-checker.js +175 -175
- package/content/.claude/commands/morph-costs.md +0 -206
- package/content/.claude/commands/morph-tasks.md +0 -319
- package/content/.claude/skills/specialists/cost-guardian.md +0 -110
- package/content/.claude/skills/stacks/shopify.md +0 -445
- package/content/.morph/config/azure-pricing.json +0 -70
- package/content/.morph/config/azure-pricing.schema.json +0 -50
- package/content/.morph/hooks/pre-commit-costs.sh +0 -91
- package/docs/api/cost-calculator.js.html +0 -513
- package/docs/api/design-system-generator.js.html +0 -382
- package/docs/api/global.html +0 -5263
- package/docs/api/index.html +0 -96
- package/docs/api/state-manager.js.html +0 -423
- package/src/commands/cost.js +0 -181
- package/src/commands/update-pricing.js +0 -206
- 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_
|