@polymorphism-tech/morph-spec 2.4.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +75 -239
- package/bin/morph-spec.js +8 -0
- package/content/.claude/commands/morph-deploy.md +529 -0
- package/content/.claude/skills/level-0-meta/README.md +7 -0
- package/content/.claude/skills/{checklists → level-0-meta}/morph-checklist.md +117 -117
- package/content/.claude/skills/level-1-workflows/README.md +7 -0
- package/content/.claude/skills/{workflows → level-1-workflows}/morph-replicate.md +213 -213
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-clarify.md +131 -131
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-design.md +213 -205
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-setup.md +106 -92
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-tasks.md +164 -164
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-uiux.md +169 -138
- package/content/.claude/skills/level-2-domains/README.md +14 -0
- package/content/.claude/skills/level-2-domains/architecture/prompt-engineer.md +189 -0
- package/content/.claude/skills/level-2-domains/architecture/seo-growth-hacker.md +320 -0
- package/content/.claude/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +699 -0
- package/content/.claude/skills/{specialists → level-2-domains/quality}/testing-specialist.md +126 -126
- package/content/.claude/skills/level-3-technologies/README.md +7 -0
- package/content/.claude/skills/level-4-patterns/README.md +7 -0
- package/content/.morph/config/agents.json +744 -358
- package/content/.morph/config/config.template.json +33 -0
- package/content/.morph/docs/workflows/enforcement-pipeline.md +668 -0
- package/content/.morph/examples/scheduled-reports/decisions.md +158 -158
- package/content/.morph/examples/scheduled-reports/proposal.md +95 -95
- package/content/.morph/examples/scheduled-reports/spec.md +267 -267
- package/content/.morph/hooks/README.md +158 -0
- package/content/.morph/hooks/task-completed.js +73 -0
- package/content/.morph/hooks/teammate-idle.js +68 -0
- package/content/.morph/schemas/tasks.schema.json +220 -220
- package/content/.morph/standards/agent-teams-workflow.md +474 -0
- package/content/.morph/templates/CONTEXT-FEATURE.md +276 -0
- package/content/.morph/templates/CONTEXT.md +170 -0
- package/content/.morph/templates/clarify-questions.md +159 -159
- package/content/.morph/templates/contracts/Commands.cs +74 -74
- package/content/.morph/templates/contracts/Entities.cs +25 -25
- package/content/.morph/templates/contracts/Queries.cs +74 -74
- package/content/.morph/templates/contracts/README.md +74 -74
- package/content/.morph/templates/infra/azure-pipelines-deploy.yml +480 -0
- package/package.json +1 -2
- package/scripts/reorganize-skills.cjs +175 -0
- package/scripts/validate-agents-structure.cjs +52 -0
- package/scripts/validate-skills.cjs +180 -0
- package/src/commands/advance-phase.js +83 -0
- package/src/commands/deploy.js +780 -0
- package/src/commands/detect-agents.js +43 -6
- package/src/commands/detect.js +1 -1
- package/src/commands/generate-context.js +40 -0
- package/src/commands/state.js +2 -1
- package/src/commands/sync.js +1 -1
- package/src/commands/update.js +13 -1
- package/src/lib/context-generator.js +513 -0
- package/src/lib/design-system-detector.js +187 -0
- package/src/lib/design-system-scaffolder.js +299 -0
- package/src/lib/hook-executor.js +256 -0
- package/src/lib/spec-validator.js +258 -0
- package/src/lib/standards-context-injector.js +287 -0
- package/src/lib/state-manager.js +21 -4
- package/src/lib/team-orchestrator.js +322 -0
- package/src/lib/validation-runner.js +65 -13
- package/src/lib/validators/design-system-validator.js +231 -0
- package/src/utils/file-copier.js +9 -1
- /package/content/.claude/skills/{checklists → level-0-meta}/code-review.md +0 -0
- /package/content/.claude/skills/{checklists → level-0-meta}/simulation-checklist.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/ai-agents}/ai-system-architect.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/architecture}/po-pm-advisor.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/architecture}/standards-architect.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/backend}/dotnet-senior.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/backend}/ef-modeler.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/backend}/hangfire-orchestrator.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/backend}/ms-agent-expert.md +0 -0
- /package/content/.claude/skills/{stacks/dotnet-blazor.md → level-2-domains/frontend/blazor-builder.md} +0 -0
- /package/content/.claude/skills/{stacks/dotnet-nextjs.md → level-2-domains/frontend/nextjs-expert.md} +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/frontend}/ui-ux-designer.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/infrastructure}/azure-architect.md +0 -0
- /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/bicep-architect.md +0 -0
- /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/container-specialist.md +0 -0
- /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/devops-engineer.md +0 -0
- /package/content/.claude/skills/{integrations → level-2-domains/integrations}/asaas-financial.md +0 -0
- /package/content/.claude/skills/{integrations → level-2-domains/integrations}/azure-identity.md +0 -0
- /package/content/.claude/skills/{integrations → level-2-domains/integrations}/clerk-auth.md +0 -0
- /package/content/.claude/skills/{integrations → level-2-domains/integrations}/resend-email.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/quality}/code-analyzer.md +0 -0
- /package/{detectors → src/lib/detectors}/config-detector.js +0 -0
- /package/{detectors → src/lib/detectors}/conversation-analyzer.js +0 -0
- /package/{detectors → src/lib/detectors}/index.js +0 -0
- /package/{detectors → src/lib/detectors}/standards-generator.js +0 -0
- /package/{detectors → src/lib/detectors}/structure-detector.js +0 -0
|
@@ -1,158 +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_
|
|
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_
|
|
@@ -1,95 +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_
|
|
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_
|