@polymorphism-tech/morph-spec 2.4.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +158 -26
- package/LICENSE +72 -72
- package/bin/detect-agents.js +225 -225
- package/bin/morph-spec.js +8 -0
- package/bin/render-template.js +302 -302
- package/bin/semantic-detect-agents.js +246 -246
- package/bin/validate-agents-skills.js +251 -251
- package/bin/validate-agents.js +69 -69
- package/bin/validate-phase.js +263 -263
- 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-archive.md +79 -79
- package/content/.claude/commands/morph-deploy.md +529 -0
- package/content/.claude/commands/morph-infra.md +209 -209
- package/content/.claude/commands/morph-preflight.md +227 -227
- package/content/.claude/commands/morph-troubleshoot.md +122 -122
- package/content/.claude/settings.local.json +15 -15
- package/content/.claude/skills/infra/azure-deploy-specialist.md +699 -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/{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/.claude/skills/specialists/prompt-engineer.md +189 -0
- package/content/.claude/skills/specialists/seo-growth-hacker.md +320 -0
- package/content/.morph/.morphversion +5 -5
- package/content/.morph/archive/.gitkeep +25 -25
- package/content/.morph/config/agents.json +742 -358
- package/content/.morph/config/config.template.json +33 -0
- package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
- package/content/.morph/docs/workflows/enforcement-pipeline.md +668 -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 -158
- package/content/.morph/examples/scheduled-reports/proposal.md +95 -95
- package/content/.morph/examples/scheduled-reports/spec.md +267 -267
- package/content/.morph/examples/state-v3.json +188 -188
- package/content/.morph/features/.gitkeep +25 -25
- package/content/.morph/hooks/README.md +158 -0
- 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/hooks/task-completed.js +73 -0
- package/content/.morph/hooks/teammate-idle.js +68 -0
- package/content/.morph/project.md +160 -160
- package/content/.morph/schemas/agent.schema.json +296 -296
- package/content/.morph/schemas/tasks.schema.json +220 -220
- package/content/.morph/specs/.gitkeep +20 -20
- package/content/.morph/standards/agent-teams-workflow.md +474 -0
- package/content/.morph/standards/coding.md +377 -377
- 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/CONTEXT-FEATURE.md +276 -0
- package/content/.morph/templates/CONTEXT.md +170 -0
- package/content/.morph/templates/FluentDesignTheme.cs +149 -149
- package/content/.morph/templates/MudTheme.cs +281 -281
- package/content/.morph/templates/clarify-questions.md +159 -159
- package/content/.morph/templates/component.razor +239 -239
- 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/contracts.cs +217 -217
- 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/azure-pipelines-deploy.yml +480 -0
- 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 -426
- 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/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/sprint-status.yaml +68 -68
- package/content/.morph/templates/story.md +143 -143
- package/content/.morph/templates/test.cs +239 -239
- 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/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/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/templates.md +418 -418
- package/package.json +1 -1
- package/scripts/postinstall.js +132 -132
- package/src/commands/advance-phase.js +83 -0
- package/src/commands/analyze-blazor-concurrency.js +193 -193
- package/src/commands/create-story.js +351 -351
- package/src/commands/deploy.js +780 -0
- package/src/commands/detect-agents.js +34 -6
- package/src/commands/detect.js +104 -104
- package/src/commands/generate-context.js +40 -0
- package/src/commands/generate.js +149 -149
- package/src/commands/lint-fluent.js +352 -352
- package/src/commands/rollback-phase.js +185 -185
- package/src/commands/session-summary.js +291 -291
- 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/troubleshoot.js +222 -222
- package/src/commands/validate-blazor-state.js +210 -210
- package/src/commands/validate-blazor.js +156 -156
- package/src/commands/validate-css.js +84 -84
- package/src/commands/validate-phase.js +221 -221
- package/src/lib/blazor-concurrency-analyzer.js +288 -288
- package/src/lib/blazor-state-validator.js +291 -291
- package/src/lib/blazor-validator.js +374 -374
- package/src/lib/context-generator.js +513 -0
- package/src/lib/css-validator.js +352 -352
- package/src/lib/design-system-detector.js +187 -0
- package/src/lib/design-system-generator.js +298 -298
- package/src/lib/design-system-scaffolder.js +299 -0
- package/src/lib/hook-executor.js +256 -0
- package/src/lib/learning-system.js +520 -520
- package/src/lib/mockup-generator.js +366 -366
- package/src/lib/spec-validator.js +258 -0
- package/src/lib/standards-context-injector.js +287 -0
- package/src/lib/team-orchestrator.js +322 -0
- package/src/lib/troubleshoot-grep.js +194 -194
- package/src/lib/troubleshoot-index.js +144 -144
- package/src/lib/ui-detector.js +350 -350
- package/src/lib/validation-runner.js +65 -13
- package/src/lib/validators/architecture-validator.js +387 -387
- package/src/lib/validators/design-system-validator.js +231 -0
- package/src/lib/validators/package-validator.js +360 -360
- package/src/lib/validators/ui-contrast-validator.js +422 -422
- package/src/utils/file-copier.js +9 -1
- package/src/utils/logger.js +32 -32
- package/src/utils/version-checker.js +175 -175
- /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
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
# Micro-SaaS - 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 NuGet | T001 | S |
|
|
9
|
-
| T003 | Criar estrutura de pastas | T001 | S |
|
|
10
|
-
| T004 | Configurar appsettings.json | T001 | S |
|
|
11
|
-
|
|
12
|
-
## Fase 2: Domain Layer
|
|
13
|
-
|
|
14
|
-
| ID | Task | Dependências | Estimativa |
|
|
15
|
-
|----|------|--------------|------------|
|
|
16
|
-
| T005 | Criar BaseEntity | T001 | S |
|
|
17
|
-
| T006 | Criar Tenant entity | T005 | M |
|
|
18
|
-
| T007 | Criar TenantUser entity | T005 | M |
|
|
19
|
-
| T008 | Criar Plan entity | T005 | S |
|
|
20
|
-
| T009 | Criar Subscription entity | T005 | M |
|
|
21
|
-
| T010 | Criar SubscriptionPayment entity | T005 | M |
|
|
22
|
-
| T011 | Definir enums | T005 | S |
|
|
23
|
-
|
|
24
|
-
## Fase 3: Infrastructure Layer
|
|
25
|
-
|
|
26
|
-
| ID | Task | Dependências | Estimativa |
|
|
27
|
-
|----|------|--------------|------------|
|
|
28
|
-
| T012 | Criar AppDbContext | T006-T011 | M |
|
|
29
|
-
| T013 | Configurar EF Core mappings | T012 | M |
|
|
30
|
-
| T014 | Criar TenantRepository | T012 | M |
|
|
31
|
-
| T015 | Criar TenantUserRepository | T012 | M |
|
|
32
|
-
| T016 | Criar SubscriptionRepository | T012 | M |
|
|
33
|
-
| T017 | Criar PlanRepository | T012 | S |
|
|
34
|
-
| T018 | Criar PaymentRepository | T012 | M |
|
|
35
|
-
| T019 | Implementar AsaasClient | T002 | L |
|
|
36
|
-
| T020 | Implementar AsaasWebhookHandler | T019 | M |
|
|
37
|
-
|
|
38
|
-
## Fase 4: Application Layer
|
|
39
|
-
|
|
40
|
-
| ID | Task | Dependências | Estimativa |
|
|
41
|
-
|----|------|--------------|------------|
|
|
42
|
-
| T021 | Criar TenantService | T014, T015 | M |
|
|
43
|
-
| T022 | Criar TenantUserService | T015 | M |
|
|
44
|
-
| T023 | Criar SubscriptionService | T016, T019 | L |
|
|
45
|
-
| T024 | Criar PlanService | T017 | S |
|
|
46
|
-
| T025 | Criar DashboardService | T014-T018 | M |
|
|
47
|
-
| T026 | Criar WebhookService | T020, T016, T018 | M |
|
|
48
|
-
|
|
49
|
-
## Fase 5: Web Layer - Auth
|
|
50
|
-
|
|
51
|
-
| ID | Task | Dependências | Estimativa |
|
|
52
|
-
|----|------|--------------|------------|
|
|
53
|
-
| T027 | Configurar Clerk authentication | T002 | M |
|
|
54
|
-
| T028 | Implementar TenantContext | T014 | M |
|
|
55
|
-
| T029 | Criar middleware de tenant resolution | T028 | M |
|
|
56
|
-
| T030 | Configurar policies de autorização | T027 | S |
|
|
57
|
-
|
|
58
|
-
## Fase 6: Web Layer - Components
|
|
59
|
-
|
|
60
|
-
| ID | Task | Dependências | Estimativa |
|
|
61
|
-
|----|------|--------------|------------|
|
|
62
|
-
| T031 | Criar MainLayout | T027 | M |
|
|
63
|
-
| T032 | Criar NavMenu | T031 | S |
|
|
64
|
-
| T033 | Criar componentes shared (DataGrid, Card, etc) | T031 | M |
|
|
65
|
-
|
|
66
|
-
## Fase 7: Web Layer - Pages
|
|
67
|
-
|
|
68
|
-
| ID | Task | Dependências | Estimativa |
|
|
69
|
-
|----|------|--------------|------------|
|
|
70
|
-
| T034 | Criar página Dashboard | T025, T031 | M |
|
|
71
|
-
| T035 | Criar página Users | T022, T033 | M |
|
|
72
|
-
| T036 | Criar página Settings | T021, T033 | M |
|
|
73
|
-
| T037 | Criar página Billing | T023, T033 | L |
|
|
74
|
-
| T038 | Criar página Plans | T024, T033 | M |
|
|
75
|
-
|
|
76
|
-
## Fase 8: Web Layer - APIs
|
|
77
|
-
|
|
78
|
-
| ID | Task | Dependências | Estimativa |
|
|
79
|
-
|----|------|--------------|------------|
|
|
80
|
-
| T039 | Criar endpoints Tenant | T021 | M |
|
|
81
|
-
| T040 | Criar endpoints Users | T022 | M |
|
|
82
|
-
| T041 | Criar endpoints Subscription | T023 | M |
|
|
83
|
-
| T042 | Criar endpoint Webhook | T026 | M |
|
|
84
|
-
|
|
85
|
-
## Fase 9: Infrastructure (IaC)
|
|
86
|
-
|
|
87
|
-
| ID | Task | Dependências | Estimativa |
|
|
88
|
-
|----|------|--------------|------------|
|
|
89
|
-
| T043 | Criar main.bicep | - | M |
|
|
90
|
-
| T044 | Configurar Container App | T043 | M |
|
|
91
|
-
| T045 | Configurar SQL Database | T043 | M |
|
|
92
|
-
| T046 | Configurar Key Vault | T043 | S |
|
|
93
|
-
| T047 | Configurar App Insights | T043 | S |
|
|
94
|
-
|
|
95
|
-
## Fase 10: Testes e Documentação
|
|
96
|
-
|
|
97
|
-
| ID | Task | Dependências | Estimativa |
|
|
98
|
-
|----|------|--------------|------------|
|
|
99
|
-
| T048 | Criar testes unitários Domain | T006-T011 | M |
|
|
100
|
-
| T049 | Criar testes integração Services | T021-T026 | L |
|
|
101
|
-
| T050 | Criar testes E2E | T034-T042 | L |
|
|
102
|
-
| T051 | Documentar APIs (OpenAPI) | T039-T042 | M |
|
|
103
|
-
|
|
104
|
-
## Checkpoints
|
|
105
|
-
|
|
106
|
-
| Checkpoint | Após Tasks | Validação |
|
|
107
|
-
|------------|------------|-----------|
|
|
108
|
-
| CP1 | T004 | Projeto compila |
|
|
109
|
-
| CP2 | T011 | Domain layer completo |
|
|
110
|
-
| CP3 | T020 | Infrastructure layer completo |
|
|
111
|
-
| CP4 | T026 | Application layer completo |
|
|
112
|
-
| CP5 | T033 | Layout e componentes prontos |
|
|
113
|
-
| CP6 | T038 | Todas as páginas funcionando |
|
|
114
|
-
| CP7 | T042 | APIs funcionando |
|
|
115
|
-
| CP8 | T047 | IaC pronto para deploy |
|
|
116
|
-
| CP9 | T051 | Projeto completo |
|
|
117
|
-
|
|
118
|
-
## Legenda
|
|
119
|
-
|
|
120
|
-
- **S** = Small (< 1h)
|
|
121
|
-
- **M** = Medium (1-3h)
|
|
122
|
-
- **L** = Large (3-8h)
|
|
123
|
-
|
|
124
|
-
## Ordem de Execução Recomendada
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
T001 → T002 → T003 → T004 (CP1)
|
|
128
|
-
↓
|
|
129
|
-
T005 → T006-T011 (CP2)
|
|
130
|
-
↓
|
|
131
|
-
T012 → T013 → T014-T020 (CP3)
|
|
132
|
-
↓
|
|
133
|
-
T021-T026 (CP4)
|
|
134
|
-
↓
|
|
135
|
-
T027 → T028 → T029 → T030
|
|
136
|
-
↓
|
|
137
|
-
T031 → T032 → T033 (CP5)
|
|
138
|
-
↓
|
|
139
|
-
T034-T038 (CP6)
|
|
140
|
-
↓
|
|
141
|
-
T039-T042 (CP7)
|
|
142
|
-
↓
|
|
143
|
-
T043-T047 (CP8)
|
|
144
|
-
↓
|
|
145
|
-
T048-T051 (CP9)
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
*MORPH-SPEC by Polymorphism Tech*
|
|
1
|
+
# Micro-SaaS - 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 NuGet | T001 | S |
|
|
9
|
+
| T003 | Criar estrutura de pastas | T001 | S |
|
|
10
|
+
| T004 | Configurar appsettings.json | T001 | S |
|
|
11
|
+
|
|
12
|
+
## Fase 2: Domain Layer
|
|
13
|
+
|
|
14
|
+
| ID | Task | Dependências | Estimativa |
|
|
15
|
+
|----|------|--------------|------------|
|
|
16
|
+
| T005 | Criar BaseEntity | T001 | S |
|
|
17
|
+
| T006 | Criar Tenant entity | T005 | M |
|
|
18
|
+
| T007 | Criar TenantUser entity | T005 | M |
|
|
19
|
+
| T008 | Criar Plan entity | T005 | S |
|
|
20
|
+
| T009 | Criar Subscription entity | T005 | M |
|
|
21
|
+
| T010 | Criar SubscriptionPayment entity | T005 | M |
|
|
22
|
+
| T011 | Definir enums | T005 | S |
|
|
23
|
+
|
|
24
|
+
## Fase 3: Infrastructure Layer
|
|
25
|
+
|
|
26
|
+
| ID | Task | Dependências | Estimativa |
|
|
27
|
+
|----|------|--------------|------------|
|
|
28
|
+
| T012 | Criar AppDbContext | T006-T011 | M |
|
|
29
|
+
| T013 | Configurar EF Core mappings | T012 | M |
|
|
30
|
+
| T014 | Criar TenantRepository | T012 | M |
|
|
31
|
+
| T015 | Criar TenantUserRepository | T012 | M |
|
|
32
|
+
| T016 | Criar SubscriptionRepository | T012 | M |
|
|
33
|
+
| T017 | Criar PlanRepository | T012 | S |
|
|
34
|
+
| T018 | Criar PaymentRepository | T012 | M |
|
|
35
|
+
| T019 | Implementar AsaasClient | T002 | L |
|
|
36
|
+
| T020 | Implementar AsaasWebhookHandler | T019 | M |
|
|
37
|
+
|
|
38
|
+
## Fase 4: Application Layer
|
|
39
|
+
|
|
40
|
+
| ID | Task | Dependências | Estimativa |
|
|
41
|
+
|----|------|--------------|------------|
|
|
42
|
+
| T021 | Criar TenantService | T014, T015 | M |
|
|
43
|
+
| T022 | Criar TenantUserService | T015 | M |
|
|
44
|
+
| T023 | Criar SubscriptionService | T016, T019 | L |
|
|
45
|
+
| T024 | Criar PlanService | T017 | S |
|
|
46
|
+
| T025 | Criar DashboardService | T014-T018 | M |
|
|
47
|
+
| T026 | Criar WebhookService | T020, T016, T018 | M |
|
|
48
|
+
|
|
49
|
+
## Fase 5: Web Layer - Auth
|
|
50
|
+
|
|
51
|
+
| ID | Task | Dependências | Estimativa |
|
|
52
|
+
|----|------|--------------|------------|
|
|
53
|
+
| T027 | Configurar Clerk authentication | T002 | M |
|
|
54
|
+
| T028 | Implementar TenantContext | T014 | M |
|
|
55
|
+
| T029 | Criar middleware de tenant resolution | T028 | M |
|
|
56
|
+
| T030 | Configurar policies de autorização | T027 | S |
|
|
57
|
+
|
|
58
|
+
## Fase 6: Web Layer - Components
|
|
59
|
+
|
|
60
|
+
| ID | Task | Dependências | Estimativa |
|
|
61
|
+
|----|------|--------------|------------|
|
|
62
|
+
| T031 | Criar MainLayout | T027 | M |
|
|
63
|
+
| T032 | Criar NavMenu | T031 | S |
|
|
64
|
+
| T033 | Criar componentes shared (DataGrid, Card, etc) | T031 | M |
|
|
65
|
+
|
|
66
|
+
## Fase 7: Web Layer - Pages
|
|
67
|
+
|
|
68
|
+
| ID | Task | Dependências | Estimativa |
|
|
69
|
+
|----|------|--------------|------------|
|
|
70
|
+
| T034 | Criar página Dashboard | T025, T031 | M |
|
|
71
|
+
| T035 | Criar página Users | T022, T033 | M |
|
|
72
|
+
| T036 | Criar página Settings | T021, T033 | M |
|
|
73
|
+
| T037 | Criar página Billing | T023, T033 | L |
|
|
74
|
+
| T038 | Criar página Plans | T024, T033 | M |
|
|
75
|
+
|
|
76
|
+
## Fase 8: Web Layer - APIs
|
|
77
|
+
|
|
78
|
+
| ID | Task | Dependências | Estimativa |
|
|
79
|
+
|----|------|--------------|------------|
|
|
80
|
+
| T039 | Criar endpoints Tenant | T021 | M |
|
|
81
|
+
| T040 | Criar endpoints Users | T022 | M |
|
|
82
|
+
| T041 | Criar endpoints Subscription | T023 | M |
|
|
83
|
+
| T042 | Criar endpoint Webhook | T026 | M |
|
|
84
|
+
|
|
85
|
+
## Fase 9: Infrastructure (IaC)
|
|
86
|
+
|
|
87
|
+
| ID | Task | Dependências | Estimativa |
|
|
88
|
+
|----|------|--------------|------------|
|
|
89
|
+
| T043 | Criar main.bicep | - | M |
|
|
90
|
+
| T044 | Configurar Container App | T043 | M |
|
|
91
|
+
| T045 | Configurar SQL Database | T043 | M |
|
|
92
|
+
| T046 | Configurar Key Vault | T043 | S |
|
|
93
|
+
| T047 | Configurar App Insights | T043 | S |
|
|
94
|
+
|
|
95
|
+
## Fase 10: Testes e Documentação
|
|
96
|
+
|
|
97
|
+
| ID | Task | Dependências | Estimativa |
|
|
98
|
+
|----|------|--------------|------------|
|
|
99
|
+
| T048 | Criar testes unitários Domain | T006-T011 | M |
|
|
100
|
+
| T049 | Criar testes integração Services | T021-T026 | L |
|
|
101
|
+
| T050 | Criar testes E2E | T034-T042 | L |
|
|
102
|
+
| T051 | Documentar APIs (OpenAPI) | T039-T042 | M |
|
|
103
|
+
|
|
104
|
+
## Checkpoints
|
|
105
|
+
|
|
106
|
+
| Checkpoint | Após Tasks | Validação |
|
|
107
|
+
|------------|------------|-----------|
|
|
108
|
+
| CP1 | T004 | Projeto compila |
|
|
109
|
+
| CP2 | T011 | Domain layer completo |
|
|
110
|
+
| CP3 | T020 | Infrastructure layer completo |
|
|
111
|
+
| CP4 | T026 | Application layer completo |
|
|
112
|
+
| CP5 | T033 | Layout e componentes prontos |
|
|
113
|
+
| CP6 | T038 | Todas as páginas funcionando |
|
|
114
|
+
| CP7 | T042 | APIs funcionando |
|
|
115
|
+
| CP8 | T047 | IaC pronto para deploy |
|
|
116
|
+
| CP9 | T051 | Projeto completo |
|
|
117
|
+
|
|
118
|
+
## Legenda
|
|
119
|
+
|
|
120
|
+
- **S** = Small (< 1h)
|
|
121
|
+
- **M** = Medium (1-3h)
|
|
122
|
+
- **L** = Large (3-8h)
|
|
123
|
+
|
|
124
|
+
## Ordem de Execução Recomendada
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
T001 → T002 → T003 → T004 (CP1)
|
|
128
|
+
↓
|
|
129
|
+
T005 → T006-T011 (CP2)
|
|
130
|
+
↓
|
|
131
|
+
T012 → T013 → T014-T020 (CP3)
|
|
132
|
+
↓
|
|
133
|
+
T021-T026 (CP4)
|
|
134
|
+
↓
|
|
135
|
+
T027 → T028 → T029 → T030
|
|
136
|
+
↓
|
|
137
|
+
T031 → T032 → T033 (CP5)
|
|
138
|
+
↓
|
|
139
|
+
T034-T038 (CP6)
|
|
140
|
+
↓
|
|
141
|
+
T039-T042 (CP7)
|
|
142
|
+
↓
|
|
143
|
+
T043-T047 (CP8)
|
|
144
|
+
↓
|
|
145
|
+
T048-T051 (CP9)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
*MORPH-SPEC by Polymorphism Tech*
|