@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,133 +1,133 @@
|
|
|
1
|
-
# UI Mockups - {{FEATURE_NAME_TITLE}}
|
|
2
|
-
|
|
3
|
-
> Wireframes ASCII e descrições de cada tela/componente da feature.
|
|
4
|
-
> Este arquivo documenta VISUALMENTE como o usuário interagirá com o sistema.
|
|
5
|
-
> Generated: {{DATE}}
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Tela 1: {Nome da Tela}
|
|
10
|
-
|
|
11
|
-
### Wireframe
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
┌─────────────────────────────────────────────────────────┐
|
|
15
|
-
│ [{≡}] {Título da Página} [🔔] [👤] [⚙] │
|
|
16
|
-
├─────────────────────────────────────────────────────────┤
|
|
17
|
-
│ │
|
|
18
|
-
│ {Desenhe o wireframe ASCII aqui} │
|
|
19
|
-
│ │
|
|
20
|
-
│ Dicas: │
|
|
21
|
-
│ - Use ┌─┐└┘├┤ para bordas │
|
|
22
|
-
│ - Use │ para separadores verticais │
|
|
23
|
-
│ - Use ─ para separadores horizontais │
|
|
24
|
-
│ - Use [...] para botões │
|
|
25
|
-
│ - Use [{x}] para checkboxes/toggles │
|
|
26
|
-
│ - Use emojis para ícones (🔍 📊 ⚙ 👤 etc) │
|
|
27
|
-
│ │
|
|
28
|
-
└─────────────────────────────────────────────────────────┘
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Descrição
|
|
32
|
-
|
|
33
|
-
- **Propósito**: {O que o usuário pode fazer nesta tela? Qual problema resolve?}
|
|
34
|
-
- **Componentes Principais**:
|
|
35
|
-
- {Componente 1}: {Descrição breve}
|
|
36
|
-
- {Componente 2}: {Descrição breve}
|
|
37
|
-
- {Componente 3}: {Descrição breve}
|
|
38
|
-
- **Interações**:
|
|
39
|
-
- **Click em {elemento}**: {O que acontece}
|
|
40
|
-
- **Hover em {elemento}**: {Feedback visual}
|
|
41
|
-
- **Submit form**: {Ação realizada}
|
|
42
|
-
- **Estados**:
|
|
43
|
-
- **Default**: {Aparência inicial}
|
|
44
|
-
- **Loading**: {Como mostra carregamento? Skeleton? Spinner?}
|
|
45
|
-
- **Error**: {Como mostra erros? Toast? Message bar?}
|
|
46
|
-
- **Empty**: {Mensagem quando não há dados? CTA para criar?}
|
|
47
|
-
- **Success**: {Feedback de sucesso?}
|
|
48
|
-
|
|
49
|
-
### Responsividade
|
|
50
|
-
|
|
51
|
-
- **Desktop (> 1024px)**: {Descrição do layout desktop}
|
|
52
|
-
- **Tablet (768px - 1024px)**: {Mudanças no layout}
|
|
53
|
-
- **Mobile (< 768px)**: {Layout mobile - stack vertical? Menu hamburger?}
|
|
54
|
-
|
|
55
|
-
### Navegação
|
|
56
|
-
|
|
57
|
-
- **De**: {Tela/componente anterior}
|
|
58
|
-
- **Para**: {Próximas telas possíveis}
|
|
59
|
-
- **Ações**:
|
|
60
|
-
- [{Botão}]: Navega para {tela}
|
|
61
|
-
- [{Link}]: Abre {modal/página}
|
|
62
|
-
|
|
63
|
-
### Acessibilidade
|
|
64
|
-
|
|
65
|
-
- **Foco inicial**: {Onde o cursor deve iniciar?}
|
|
66
|
-
- **Tab order**: {Ordem lógica de navegação}
|
|
67
|
-
- **Screen reader**: {Principais ARIA labels}
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Tela 2: {Nome da Próxima Tela}
|
|
72
|
-
|
|
73
|
-
{Repita a estrutura acima para cada tela}
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Componentes Reutilizáveis
|
|
78
|
-
|
|
79
|
-
### {Nome do Componente}
|
|
80
|
-
|
|
81
|
-
**Wireframe:**
|
|
82
|
-
```
|
|
83
|
-
{ASCII art do componente isolado}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
**Uso:**
|
|
87
|
-
- Aparece em: {Lista de telas onde este componente aparece}
|
|
88
|
-
- Variantes: {Diferentes versões/estados do componente}
|
|
89
|
-
- Props: {Parâmetros que o componente recebe}
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## Fluxo de Navegação (Overview)
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
[Tela Inicial]
|
|
97
|
-
│
|
|
98
|
-
├─[Ação 1]──▶ [Tela A]
|
|
99
|
-
│ │
|
|
100
|
-
│ └─[Voltar]──▶ [Tela Inicial]
|
|
101
|
-
│
|
|
102
|
-
├─[Ação 2]──▶ [Tela B]
|
|
103
|
-
│ │
|
|
104
|
-
│ ├─[Próximo]──▶ [Tela C]
|
|
105
|
-
│ │
|
|
106
|
-
│ └─[Cancelar]──▶ [Tela Inicial]
|
|
107
|
-
│
|
|
108
|
-
└─[Ação 3]──▶ [Tela D]
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## Notas de Design
|
|
114
|
-
|
|
115
|
-
### Paleta de Cores
|
|
116
|
-
- **Primária**: {Cor principal da interface}
|
|
117
|
-
- **Secundária**: {Cor para ações secundárias}
|
|
118
|
-
- **Sucesso**: {Verde para feedback positivo}
|
|
119
|
-
- **Erro**: {Vermelho para erros}
|
|
120
|
-
- **Warning**: {Amarelo para alertas}
|
|
121
|
-
|
|
122
|
-
### Tipografia
|
|
123
|
-
- **Títulos**: {Font, tamanho}
|
|
124
|
-
- **Corpo**: {Font, tamanho}
|
|
125
|
-
- **Labels**: {Font, tamanho}
|
|
126
|
-
|
|
127
|
-
### Espaçamento
|
|
128
|
-
- **Padding padrão**: {16px, 24px, etc}
|
|
129
|
-
- **Gap entre elementos**: {8px, 12px, etc}
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
*Template MORPH-SPEC v2.1.0 by Polymorphism Tech*
|
|
1
|
+
# UI Mockups - {{FEATURE_NAME_TITLE}}
|
|
2
|
+
|
|
3
|
+
> Wireframes ASCII e descrições de cada tela/componente da feature.
|
|
4
|
+
> Este arquivo documenta VISUALMENTE como o usuário interagirá com o sistema.
|
|
5
|
+
> Generated: {{DATE}}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Tela 1: {Nome da Tela}
|
|
10
|
+
|
|
11
|
+
### Wireframe
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
┌─────────────────────────────────────────────────────────┐
|
|
15
|
+
│ [{≡}] {Título da Página} [🔔] [👤] [⚙] │
|
|
16
|
+
├─────────────────────────────────────────────────────────┤
|
|
17
|
+
│ │
|
|
18
|
+
│ {Desenhe o wireframe ASCII aqui} │
|
|
19
|
+
│ │
|
|
20
|
+
│ Dicas: │
|
|
21
|
+
│ - Use ┌─┐└┘├┤ para bordas │
|
|
22
|
+
│ - Use │ para separadores verticais │
|
|
23
|
+
│ - Use ─ para separadores horizontais │
|
|
24
|
+
│ - Use [...] para botões │
|
|
25
|
+
│ - Use [{x}] para checkboxes/toggles │
|
|
26
|
+
│ - Use emojis para ícones (🔍 📊 ⚙ 👤 etc) │
|
|
27
|
+
│ │
|
|
28
|
+
└─────────────────────────────────────────────────────────┘
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Descrição
|
|
32
|
+
|
|
33
|
+
- **Propósito**: {O que o usuário pode fazer nesta tela? Qual problema resolve?}
|
|
34
|
+
- **Componentes Principais**:
|
|
35
|
+
- {Componente 1}: {Descrição breve}
|
|
36
|
+
- {Componente 2}: {Descrição breve}
|
|
37
|
+
- {Componente 3}: {Descrição breve}
|
|
38
|
+
- **Interações**:
|
|
39
|
+
- **Click em {elemento}**: {O que acontece}
|
|
40
|
+
- **Hover em {elemento}**: {Feedback visual}
|
|
41
|
+
- **Submit form**: {Ação realizada}
|
|
42
|
+
- **Estados**:
|
|
43
|
+
- **Default**: {Aparência inicial}
|
|
44
|
+
- **Loading**: {Como mostra carregamento? Skeleton? Spinner?}
|
|
45
|
+
- **Error**: {Como mostra erros? Toast? Message bar?}
|
|
46
|
+
- **Empty**: {Mensagem quando não há dados? CTA para criar?}
|
|
47
|
+
- **Success**: {Feedback de sucesso?}
|
|
48
|
+
|
|
49
|
+
### Responsividade
|
|
50
|
+
|
|
51
|
+
- **Desktop (> 1024px)**: {Descrição do layout desktop}
|
|
52
|
+
- **Tablet (768px - 1024px)**: {Mudanças no layout}
|
|
53
|
+
- **Mobile (< 768px)**: {Layout mobile - stack vertical? Menu hamburger?}
|
|
54
|
+
|
|
55
|
+
### Navegação
|
|
56
|
+
|
|
57
|
+
- **De**: {Tela/componente anterior}
|
|
58
|
+
- **Para**: {Próximas telas possíveis}
|
|
59
|
+
- **Ações**:
|
|
60
|
+
- [{Botão}]: Navega para {tela}
|
|
61
|
+
- [{Link}]: Abre {modal/página}
|
|
62
|
+
|
|
63
|
+
### Acessibilidade
|
|
64
|
+
|
|
65
|
+
- **Foco inicial**: {Onde o cursor deve iniciar?}
|
|
66
|
+
- **Tab order**: {Ordem lógica de navegação}
|
|
67
|
+
- **Screen reader**: {Principais ARIA labels}
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Tela 2: {Nome da Próxima Tela}
|
|
72
|
+
|
|
73
|
+
{Repita a estrutura acima para cada tela}
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Componentes Reutilizáveis
|
|
78
|
+
|
|
79
|
+
### {Nome do Componente}
|
|
80
|
+
|
|
81
|
+
**Wireframe:**
|
|
82
|
+
```
|
|
83
|
+
{ASCII art do componente isolado}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Uso:**
|
|
87
|
+
- Aparece em: {Lista de telas onde este componente aparece}
|
|
88
|
+
- Variantes: {Diferentes versões/estados do componente}
|
|
89
|
+
- Props: {Parâmetros que o componente recebe}
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Fluxo de Navegação (Overview)
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
[Tela Inicial]
|
|
97
|
+
│
|
|
98
|
+
├─[Ação 1]──▶ [Tela A]
|
|
99
|
+
│ │
|
|
100
|
+
│ └─[Voltar]──▶ [Tela Inicial]
|
|
101
|
+
│
|
|
102
|
+
├─[Ação 2]──▶ [Tela B]
|
|
103
|
+
│ │
|
|
104
|
+
│ ├─[Próximo]──▶ [Tela C]
|
|
105
|
+
│ │
|
|
106
|
+
│ └─[Cancelar]──▶ [Tela Inicial]
|
|
107
|
+
│
|
|
108
|
+
└─[Ação 3]──▶ [Tela D]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Notas de Design
|
|
114
|
+
|
|
115
|
+
### Paleta de Cores
|
|
116
|
+
- **Primária**: {Cor principal da interface}
|
|
117
|
+
- **Secundária**: {Cor para ações secundárias}
|
|
118
|
+
- **Sucesso**: {Verde para feedback positivo}
|
|
119
|
+
- **Erro**: {Vermelho para erros}
|
|
120
|
+
- **Warning**: {Amarelo para alertas}
|
|
121
|
+
|
|
122
|
+
### Tipografia
|
|
123
|
+
- **Títulos**: {Font, tamanho}
|
|
124
|
+
- **Corpo**: {Font, tamanho}
|
|
125
|
+
- **Labels**: {Font, tamanho}
|
|
126
|
+
|
|
127
|
+
### Espaçamento
|
|
128
|
+
- **Padding padrão**: {16px, 24px, etc}
|
|
129
|
+
- **Gap entre elementos**: {8px, 12px, etc}
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
*Template MORPH-SPEC v2.1.0 by Polymorphism Tech*
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
// Example Bicep file for testing cost calculator
|
|
2
|
-
|
|
3
|
-
param location string = 'eastus2'
|
|
4
|
-
param environment string = 'dev'
|
|
5
|
-
|
|
6
|
-
// Azure SQL Database - Basic tier ($4.99/month)
|
|
7
|
-
resource sqlDatabase 'Microsoft.Sql/servers/databases@2023-05-01-preview' = {
|
|
8
|
-
name: 'sqldb-myapp-${environment}'
|
|
9
|
-
location: location
|
|
10
|
-
sku: {
|
|
11
|
-
name: 'Basic'
|
|
12
|
-
tier: 'Basic'
|
|
13
|
-
}
|
|
14
|
-
properties: {
|
|
15
|
-
collation: 'SQL_Latin1_General_CP1_CI_AS'
|
|
16
|
-
maxSizeBytes: 2147483648 // 2 GB
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Container App - Scale-to-zero ($0/month)
|
|
21
|
-
resource containerApp 'Microsoft.App/containerApps@2023-05-01' = {
|
|
22
|
-
name: 'ca-myapp-${environment}'
|
|
23
|
-
location: location
|
|
24
|
-
properties: {
|
|
25
|
-
configuration: {
|
|
26
|
-
ingress: {
|
|
27
|
-
external: true
|
|
28
|
-
targetPort: 8080
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
template: {
|
|
32
|
-
containers: [
|
|
33
|
-
{
|
|
34
|
-
name: 'main'
|
|
35
|
-
image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest'
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
scale: {
|
|
39
|
-
minReplicas: 0 // Scale-to-zero = FREE
|
|
40
|
-
maxReplicas: 2
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Application Insights - Free tier ($0/month)
|
|
47
|
-
resource appInsights 'Microsoft.Insights/components@2020-02-02' = {
|
|
48
|
-
name: 'appi-myapp-${environment}'
|
|
49
|
-
location: location
|
|
50
|
-
kind: 'web'
|
|
51
|
-
properties: {
|
|
52
|
-
Application_Type: 'web'
|
|
53
|
-
}
|
|
54
|
-
sku: {
|
|
55
|
-
name: 'Free'
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Total: $4.99/month (within $10 limit)
|
|
1
|
+
// Example Bicep file for testing cost calculator
|
|
2
|
+
|
|
3
|
+
param location string = 'eastus2'
|
|
4
|
+
param environment string = 'dev'
|
|
5
|
+
|
|
6
|
+
// Azure SQL Database - Basic tier ($4.99/month)
|
|
7
|
+
resource sqlDatabase 'Microsoft.Sql/servers/databases@2023-05-01-preview' = {
|
|
8
|
+
name: 'sqldb-myapp-${environment}'
|
|
9
|
+
location: location
|
|
10
|
+
sku: {
|
|
11
|
+
name: 'Basic'
|
|
12
|
+
tier: 'Basic'
|
|
13
|
+
}
|
|
14
|
+
properties: {
|
|
15
|
+
collation: 'SQL_Latin1_General_CP1_CI_AS'
|
|
16
|
+
maxSizeBytes: 2147483648 // 2 GB
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Container App - Scale-to-zero ($0/month)
|
|
21
|
+
resource containerApp 'Microsoft.App/containerApps@2023-05-01' = {
|
|
22
|
+
name: 'ca-myapp-${environment}'
|
|
23
|
+
location: location
|
|
24
|
+
properties: {
|
|
25
|
+
configuration: {
|
|
26
|
+
ingress: {
|
|
27
|
+
external: true
|
|
28
|
+
targetPort: 8080
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
template: {
|
|
32
|
+
containers: [
|
|
33
|
+
{
|
|
34
|
+
name: 'main'
|
|
35
|
+
image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest'
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
scale: {
|
|
39
|
+
minReplicas: 0 // Scale-to-zero = FREE
|
|
40
|
+
maxReplicas: 2
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Application Insights - Free tier ($0/month)
|
|
47
|
+
resource appInsights 'Microsoft.Insights/components@2020-02-02' = {
|
|
48
|
+
name: 'appi-myapp-${environment}'
|
|
49
|
+
location: location
|
|
50
|
+
kind: 'web'
|
|
51
|
+
properties: {
|
|
52
|
+
Application_Type: 'web'
|
|
53
|
+
}
|
|
54
|
+
sku: {
|
|
55
|
+
name: 'Free'
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Total: $4.99/month (within $10 limit)
|