@polymorphism-tech/morph-spec 4.6.0 → 4.7.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/README.md +394 -700
- package/docs/ARCHITECTURE.md +331 -0
- package/docs/CHEATSHEET.md +221 -0
- package/docs/COMMAND-FLOWS.md +368 -0
- package/docs/QUICKSTART.md +212 -0
- package/docs/examples/order-management/contracts.cs +84 -0
- package/docs/examples/order-management/proposal.md +24 -0
- package/docs/examples/order-management/spec.md +162 -0
- package/docs/plans/2026-02-23-ddd-architecture-refactor.md +1153 -0
- package/docs/plans/2026-02-23-ddd-nextsteps.md +682 -0
- package/docs/plans/2026-02-23-infra-architect-refactor.md +437 -0
- package/docs/plans/2026-02-23-nextjs-code-review-design.md +156 -0
- package/docs/plans/2026-02-23-nextjs-code-review-impl.md +1254 -0
- package/docs/plans/2026-02-23-nextjs-standards-design.md +149 -0
- package/docs/plans/2026-02-23-nextjs-standards-impl.md +1846 -0
- package/framework/agents/README.md +14 -14
- package/framework/agents/architecture/standards-architect.md +159 -159
- package/framework/agents/frontend/nextjs-expert.md +87 -127
- package/framework/agents/infrastructure/azure-architect.md +147 -147
- package/framework/agents/infrastructure/infra-architect.md +45 -0
- package/framework/agents.json +1145 -278
- package/framework/rules/frontend-standards.md +0 -3
- package/framework/rules/nextjs-standards.md +17 -0
- package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +147 -0
- package/framework/skills/level-0-meta/code-review-nextjs/references/review-example-nextjs.md +254 -0
- package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +3 -3
- package/framework/skills/level-1-workflows/phase-design/SKILL.md +45 -9
- package/framework/skills/level-1-workflows/phase-tasks/SKILL.md +38 -0
- package/framework/standards/STANDARDS.json +121 -0
- package/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
- package/framework/standards/architecture/ddd/complexity-levels.md +108 -0
- package/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
- package/framework/standards/frontend/nextjs/app-router.md +123 -0
- package/framework/standards/frontend/nextjs/components.md +132 -0
- package/framework/standards/frontend/nextjs/data-fetching.md +126 -0
- package/framework/standards/frontend/nextjs/forms.md +128 -0
- package/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
- package/framework/standards/frontend/nextjs/project-structure.md +102 -0
- package/framework/standards/frontend/nextjs/state-management.md +72 -0
- package/framework/standards/frontend/nextjs/testing.md +111 -0
- package/framework/templates/REGISTRY.json +538 -142
- package/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
- package/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
- package/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
- package/framework/templates/docs/spec.md +49 -0
- package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
- package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
- package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
- package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
- package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
- package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
- package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
- package/framework/templates/project-structure/dotnet-ddd.md +70 -0
- package/framework/workflows/docs/enforcement-pipeline.md +2 -1
- package/package.json +1 -1
- package/scripts/scan-nextjs.mjs +169 -0
- package/src/commands/project/doctor.js +52 -1
- package/src/commands/project/init.js +15 -1
- package/src/commands/project/update.js +6 -1
- package/src/lib/standards/standards-context-injector.js +5 -0
- package/src/lib/validators/nextjs/index.js +6 -0
- package/src/lib/validators/nextjs/next-component-validator.js +181 -0
- package/src/lib/validators/validation-runner.js +5 -0
- package/src/utils/agents-installer.js +14 -2
- package/.morph/.morphversion +0 -5
- package/.morph/analytics/threads-log.jsonl +0 -6
- package/.morph/config/config.json +0 -8
- package/.morph/framework/agents.json +0 -948
- package/.morph/framework/standards/STANDARDS.json +0 -812
- package/.morph/framework/standards/ai-agents/blazor-ui.md +0 -364
- package/.morph/framework/standards/ai-agents/production.md +0 -415
- package/.morph/framework/standards/ai-agents/setup.md +0 -418
- package/.morph/framework/standards/ai-agents/team-orchestration.md +0 -479
- package/.morph/framework/standards/ai-agents/workflows.md +0 -354
- package/.morph/framework/standards/architecture/ddd/aggregates.md +0 -120
- package/.morph/framework/standards/architecture/ddd/entities.md +0 -99
- package/.morph/framework/standards/architecture/ddd/value-objects.md +0 -124
- package/.morph/framework/standards/backend/api/minimal-api.md +0 -494
- package/.morph/framework/standards/backend/api/rest.md +0 -492
- package/.morph/framework/standards/backend/api/validation.md +0 -88
- package/.morph/framework/standards/backend/authentication/passkeys.md +0 -428
- package/.morph/framework/standards/backend/database/ef-core.md +0 -199
- package/.morph/framework/standards/backend/database/migrations.md +0 -393
- package/.morph/framework/standards/backend/database/postgresql/database.md +0 -352
- package/.morph/framework/standards/backend/database/repository-patterns.md +0 -528
- package/.morph/framework/standards/backend/database/vector-search-rag.md +0 -541
- package/.morph/framework/standards/backend/dotnet/async.md +0 -366
- package/.morph/framework/standards/backend/dotnet/core.md +0 -117
- package/.morph/framework/standards/backend/dotnet/di.md +0 -439
- package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
- package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +0 -216
- package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +0 -290
- package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
- package/.morph/framework/standards/backend/integrations/resend/resend-email.md +0 -385
- package/.morph/framework/standards/context/analytics.md +0 -96
- package/.morph/framework/standards/context/bundles.md +0 -110
- package/.morph/framework/standards/context/priming.md +0 -78
- package/.morph/framework/standards/core/architecture.md +0 -185
- package/.morph/framework/standards/core/coding.md +0 -214
- package/.morph/framework/standards/core/git-branching-strategy.md +0 -403
- package/.morph/framework/standards/core/git.md +0 -185
- package/.morph/framework/standards/core/testing.md +0 -295
- package/.morph/framework/standards/data/nosql/blob-storage.md +0 -102
- package/.morph/framework/standards/data/nosql/cache/redis.md +0 -97
- package/.morph/framework/standards/data/nosql/cosmos-db.md +0 -118
- package/.morph/framework/standards/data/vector-search/azure-ai-search.md +0 -121
- package/.morph/framework/standards/data/vector-search/rag-chunking.md +0 -104
- package/.morph/framework/standards/frontend/blazor/design-checklist.md +0 -222
- package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
- package/.morph/framework/standards/frontend/blazor/fluent-ui.md +0 -137
- package/.morph/framework/standards/frontend/blazor/html-conversion.md +0 -184
- package/.morph/framework/standards/frontend/blazor/lifecycle.md +0 -195
- package/.morph/framework/standards/frontend/blazor/pitfalls.md +0 -198
- package/.morph/framework/standards/frontend/blazor/state.md +0 -191
- package/.morph/framework/standards/frontend/design-system/animations.md +0 -151
- package/.morph/framework/standards/frontend/design-system/naming.md +0 -64
- package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +0 -215
- package/.morph/framework/standards/infrastructure/azure/azure.md +0 -624
- package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
- package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
- package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
- package/.morph/framework/standards/infrastructure/azure/services/functions.md +0 -486
- package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
- package/.morph/framework/standards/infrastructure/azure/services/storage.md +0 -407
- package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +0 -196
- package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +0 -252
- package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +0 -176
- package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
- package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +0 -184
- package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +0 -153
- package/.morph/framework/standards/integration/api/graphql.md +0 -91
- package/.morph/framework/standards/integration/api/grpc.md +0 -114
- package/.morph/framework/standards/integration/api/rest-design.md +0 -95
- package/.morph/framework/standards/integration/event-driven/cqrs.md +0 -101
- package/.morph/framework/standards/integration/event-driven/event-sourcing.md +0 -124
- package/.morph/framework/standards/integration/event-driven/service-bus.md +0 -95
- package/.morph/framework/standards/integration/mcp/mcp-tools.md +0 -384
- package/.morph/framework/standards/observability/logging.md +0 -131
- package/.morph/framework/standards/observability/metrics.md +0 -121
- package/.morph/framework/standards/observability/monitoring.md +0 -114
- package/.morph/framework/standards/observability/tracing.md +0 -132
- package/.morph/framework/standards/workflows/parallel-execution.md +0 -112
- package/.morph/framework/standards/workflows/thread-management.md +0 -113
- package/.morph/framework/templates/.idea/morph-templates.xml +0 -92
- package/.morph/framework/templates/.vscode/morph-templates.code-snippets +0 -186
- package/.morph/framework/templates/IDE-SNIPPETS.md +0 -266
- package/.morph/framework/templates/README.md +0 -814
- package/.morph/framework/templates/REGISTRY.json +0 -1492
- package/.morph/framework/templates/code/dotnet/backend/repository.cs +0 -141
- package/.morph/framework/templates/code/dotnet/backend/service.cs +0 -139
- package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
- package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/README.md +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
- package/.morph/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
- package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
- package/.morph/framework/templates/code/dotnet/database/migration.cs +0 -83
- package/.morph/framework/templates/code/dotnet/frontend/component.razor +0 -239
- package/.morph/framework/templates/code/dotnet/jobs/agent.cs +0 -163
- package/.morph/framework/templates/code/dotnet/jobs/job.cs +0 -171
- package/.morph/framework/templates/code/dotnet/test.cs +0 -239
- package/.morph/framework/templates/code/sql/rls-policy.sql +0 -57
- package/.morph/framework/templates/code/sql/supabase-migration.sql +0 -100
- package/.morph/framework/templates/code/sql/supabase-migration.template.sql +0 -113
- package/.morph/framework/templates/code/typescript/contracts.ts +0 -168
- package/.morph/framework/templates/context/CONTEXT-FEATURE.md +0 -276
- package/.morph/framework/templates/context/CONTEXT.md +0 -181
- package/.morph/framework/templates/docs/clarifications.md +0 -253
- package/.morph/framework/templates/docs/onboarding.md +0 -123
- package/.morph/framework/templates/docs/proposal.md +0 -182
- package/.morph/framework/templates/docs/schema-analysis.md +0 -119
- package/.morph/framework/templates/docs/spec.md +0 -149
- package/.morph/framework/templates/docs/ui-components.md +0 -124
- package/.morph/framework/templates/docs/ui-design-system.md +0 -76
- package/.morph/framework/templates/docs/ui-flows.md +0 -167
- package/.morph/framework/templates/docs/ui-mockups.md +0 -98
- package/.morph/framework/templates/docs/user-stories.md +0 -34
- package/.morph/framework/templates/examples/design-system-examples.md +0 -357
- package/.morph/framework/templates/examples/spec-examples.md +0 -90
- package/.morph/framework/templates/feature/decisions.md +0 -187
- package/.morph/framework/templates/feature/recap.md +0 -146
- package/.morph/framework/templates/feature/tasks.md +0 -199
- package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
- package/.morph/framework/templates/infrastructure/azure/README.md +0 -286
- package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
- package/.morph/framework/templates/infrastructure/azure/app-service.bicep +0 -164
- package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
- package/.morph/framework/templates/infrastructure/azure/container-app.bicep +0 -156
- package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
- package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
- package/.morph/framework/templates/infrastructure/azure/deploy.sh +0 -208
- package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
- package/.morph/framework/templates/infrastructure/azure/main.bicep +0 -189
- package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
- package/.morph/framework/templates/infrastructure/azure/storage.bicep +0 -106
- package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +0 -58
- package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +0 -67
- package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +0 -38
- package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +0 -48
- package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +0 -54
- package/.morph/framework/templates/infrastructure/github/README.md +0 -593
- package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
- package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -45
- package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +0 -27
- package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
- package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -31
- package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -59
- package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -39
- package/.morph/framework/templates/integrations/asaas-client.cs +0 -387
- package/.morph/framework/templates/integrations/asaas-webhook.cs +0 -351
- package/.morph/framework/templates/integrations/azure-identity-config.cs +0 -288
- package/.morph/framework/templates/integrations/clerk-config.cs +0 -258
- package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +0 -76
- package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +0 -100
- package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
- package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
- package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
- package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
- package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
- package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +0 -90
- package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +0 -126
- package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +0 -43
- package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +0 -107
- package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +0 -95
- package/.morph/framework/templates/saas/subscription.cs +0 -347
- package/.morph/framework/templates/saas/tenant.cs +0 -338
- package/.morph/framework/templates/state.template.json +0 -17
- package/.morph/framework/templates/ui/FluentDesignTheme.cs +0 -149
- package/.morph/framework/templates/ui/MudTheme.cs +0 -281
- package/.morph/framework/templates/ui/design-system.css +0 -226
- package/.morph/logs/tool-failures.log +0 -7
- package/.morph/memory/pre-compact-2026-02-23T15-43-03-521Z.json +0 -16
- package/.morph/state.json +0 -48
- package/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
- package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
|
@@ -1,148 +1,148 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: azure-architect
|
|
3
|
-
description: Azure Architect specialist for designing Azure infrastructure, creating Bicep IaC templates, estimating resource costs, and enforcing zero-portal policy. Use when designing Azure architecture, provisioning cloud resources, creating Bicep templates, or planning multi-environment deployments.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Azure Architect
|
|
8
|
-
|
|
9
|
-
Especialista em infraestrutura Azure com foco em Infrastructure as Code (Bicep).
|
|
10
|
-
|
|
11
|
-
## Responsabilidades
|
|
12
|
-
|
|
13
|
-
1. **Desenhar infraestrutura Azure** para projetos
|
|
14
|
-
2. **Criar templates Bicep** para provisionar recursos
|
|
15
|
-
3. **Estimar custos** antes de aprovar recursos
|
|
16
|
-
4. **Garantir zero portal** - tudo via código
|
|
17
|
-
|
|
18
|
-
## Triggers
|
|
19
|
-
|
|
20
|
-
Ativado
|
|
21
|
-
|
|
22
|
-
Keywords: `azure`, `infrastructure`, `bicep`, `deploy`, `container apps`, `sql`, `storage`, `provision`
|
|
23
|
-
|
|
24
|
-
## Princípio: Zero Portal
|
|
25
|
-
|
|
26
|
-
> **NUNCA** criar recursos Azure manualmente no portal. Tudo via Bicep.
|
|
27
|
-
|
|
28
|
-
## Estrutura IaC
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
infra/
|
|
32
|
-
├── main.bicep # Entry point
|
|
33
|
-
├── parameters.dev.json # Ambiente dev
|
|
34
|
-
├── parameters.prod.json # Ambiente prod
|
|
35
|
-
└── modules/
|
|
36
|
-
├── container-app.bicep # Container Apps
|
|
37
|
-
├── sql-database.bicep # Azure SQL
|
|
38
|
-
├── storage.bicep # Storage Account
|
|
39
|
-
├── key-vault.bicep # Key Vault
|
|
40
|
-
├── app-insights.bicep # Monitoring
|
|
41
|
-
└── service-bus.bicep # Mensageria
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Template Bicep Base
|
|
45
|
-
|
|
46
|
-
```bicep
|
|
47
|
-
// infra/main.bicep
|
|
48
|
-
targetScope = 'resourceGroup'
|
|
49
|
-
|
|
50
|
-
@description('Environment name')
|
|
51
|
-
param environment string = 'dev'
|
|
52
|
-
|
|
53
|
-
@description('Location for resources')
|
|
54
|
-
param location string = resourceGroup().location
|
|
55
|
-
|
|
56
|
-
@description('Application name')
|
|
57
|
-
param appName string
|
|
58
|
-
|
|
59
|
-
// Variables
|
|
60
|
-
var resourcePrefix = '${appName}-${environment}'
|
|
61
|
-
|
|
62
|
-
// Container App Environment
|
|
63
|
-
module containerAppEnv 'modules/container-app-env.bicep' = {
|
|
64
|
-
name: 'containerAppEnv'
|
|
65
|
-
params: {
|
|
66
|
-
name: '${resourcePrefix}-env'
|
|
67
|
-
location: location
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Container App
|
|
72
|
-
module containerApp 'modules/container-app.bicep' = {
|
|
73
|
-
name: 'containerApp'
|
|
74
|
-
params: {
|
|
75
|
-
name: resourcePrefix
|
|
76
|
-
location: location
|
|
77
|
-
environmentId: containerAppEnv.outputs.id
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Recursos Recomendados por Tier
|
|
83
|
-
|
|
84
|
-
### Free Tier (Sem aprovação)
|
|
85
|
-
|
|
86
|
-
| Recurso | Config | Custo |
|
|
87
|
-
|---------|--------|-------|
|
|
88
|
-
| Azure SQL | Free 32GB | $0 |
|
|
89
|
-
| Container Apps | Scale to zero | ~$0 |
|
|
90
|
-
| Storage | LRS 5GB | ~$0 |
|
|
91
|
-
| App Insights | Free tier | $0 |
|
|
92
|
-
|
|
93
|
-
### Basic Tier (Até $10/mês)
|
|
94
|
-
|
|
95
|
-
| Recurso | Config | Custo |
|
|
96
|
-
|---------|--------|-------|
|
|
97
|
-
| Azure SQL | Basic DTU | ~$5 |
|
|
98
|
-
| Service Bus | Basic | ~$0.05 |
|
|
99
|
-
| Key Vault | Standard | ~$0.03 |
|
|
100
|
-
|
|
101
|
-
## Comandos de Deploy
|
|
102
|
-
|
|
103
|
-
```powershell
|
|
104
|
-
# Criar resource group
|
|
105
|
-
az group create --name rg-{app}-{env} --location brazilsouth
|
|
106
|
-
|
|
107
|
-
# Deploy com Bicep
|
|
108
|
-
az deployment group create \
|
|
109
|
-
--resource-group rg-{app}-{env} \
|
|
110
|
-
--template-file infra/main.bicep \
|
|
111
|
-
--parameters @infra/parameters.{env}.json
|
|
112
|
-
|
|
113
|
-
# Validar antes de deploy
|
|
114
|
-
az deployment group what-if \
|
|
115
|
-
--resource-group rg-{app}-{env} \
|
|
116
|
-
--template-file infra/main.bicep \
|
|
117
|
-
--parameters @infra/parameters.{env}.json
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## Quando usar SDK .NET vs Bicep
|
|
121
|
-
|
|
122
|
-
| Recurso | Abordagem | Motivo |
|
|
123
|
-
|---------|-----------|--------|
|
|
124
|
-
| SQL, Storage, Container Apps | Bicep | Infra estática, declarativa |
|
|
125
|
-
| Azure AI, Fabric | SDK .NET | Recursos dinâmicos, runtime |
|
|
126
|
-
| Secrets | Key Vault + Bicep | Segurança |
|
|
127
|
-
|
|
128
|
-
## Documentação de Referência
|
|
129
|
-
|
|
130
|
-
- [Azure Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/)
|
|
131
|
-
- [Container Apps](https://learn.microsoft.com/en-us/azure/container-apps/)
|
|
132
|
-
- [Azure SQL](https://learn.microsoft.com/en-us/azure/azure-sql/)
|
|
133
|
-
- [Azure SDK for .NET](https://learn.microsoft.com/en-us/dotnet/azure/)
|
|
134
|
-
- [Pricing Calculator](https://azure.microsoft.com/en-us/pricing/calculator/)
|
|
135
|
-
|
|
136
|
-
## Checklist de Infraestrutura
|
|
137
|
-
|
|
138
|
-
- [ ] Bicep válido (`az bicep build`)
|
|
139
|
-
- [ ] Parâmetros para dev e prod
|
|
140
|
-
- [ ] Custos estimados e documentados
|
|
141
|
-
- [ ] Secrets no Key Vault (não hardcoded)
|
|
142
|
-
- [ ] Logs configurados (App Insights)
|
|
143
|
-
- [ ] Scale-to-zero onde possível
|
|
144
|
-
- [ ] Naming convention consistente
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
1
|
+
---
|
|
2
|
+
name: azure-architect
|
|
3
|
+
description: Azure Architect specialist for designing Azure infrastructure, creating Bicep IaC templates, estimating resource costs, and enforcing zero-portal policy. Use when designing Azure architecture, provisioning cloud resources, creating Bicep templates, or planning multi-environment deployments.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Azure Architect
|
|
8
|
+
|
|
9
|
+
Especialista em infraestrutura Azure com foco em Infrastructure as Code (Bicep).
|
|
10
|
+
|
|
11
|
+
## Responsabilidades
|
|
12
|
+
|
|
13
|
+
1. **Desenhar infraestrutura Azure** para projetos
|
|
14
|
+
2. **Criar templates Bicep** para provisionar recursos
|
|
15
|
+
3. **Estimar custos** antes de aprovar recursos
|
|
16
|
+
4. **Garantir zero portal** - tudo via código
|
|
17
|
+
|
|
18
|
+
## Triggers
|
|
19
|
+
|
|
20
|
+
Ativado quando o projeto usa Azure como provedor de cloud. Coordenado pelo `infra-architect`.
|
|
21
|
+
|
|
22
|
+
Keywords: `azure`, `infrastructure`, `bicep`, `deploy`, `container apps`, `sql`, `storage`, `provision`
|
|
23
|
+
|
|
24
|
+
## Princípio: Zero Portal
|
|
25
|
+
|
|
26
|
+
> **NUNCA** criar recursos Azure manualmente no portal. Tudo via Bicep.
|
|
27
|
+
|
|
28
|
+
## Estrutura IaC
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
infra/
|
|
32
|
+
├── main.bicep # Entry point
|
|
33
|
+
├── parameters.dev.json # Ambiente dev
|
|
34
|
+
├── parameters.prod.json # Ambiente prod
|
|
35
|
+
└── modules/
|
|
36
|
+
├── container-app.bicep # Container Apps
|
|
37
|
+
├── sql-database.bicep # Azure SQL
|
|
38
|
+
├── storage.bicep # Storage Account
|
|
39
|
+
├── key-vault.bicep # Key Vault
|
|
40
|
+
├── app-insights.bicep # Monitoring
|
|
41
|
+
└── service-bus.bicep # Mensageria
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Template Bicep Base
|
|
45
|
+
|
|
46
|
+
```bicep
|
|
47
|
+
// infra/main.bicep
|
|
48
|
+
targetScope = 'resourceGroup'
|
|
49
|
+
|
|
50
|
+
@description('Environment name')
|
|
51
|
+
param environment string = 'dev'
|
|
52
|
+
|
|
53
|
+
@description('Location for resources')
|
|
54
|
+
param location string = resourceGroup().location
|
|
55
|
+
|
|
56
|
+
@description('Application name')
|
|
57
|
+
param appName string
|
|
58
|
+
|
|
59
|
+
// Variables
|
|
60
|
+
var resourcePrefix = '${appName}-${environment}'
|
|
61
|
+
|
|
62
|
+
// Container App Environment
|
|
63
|
+
module containerAppEnv 'modules/container-app-env.bicep' = {
|
|
64
|
+
name: 'containerAppEnv'
|
|
65
|
+
params: {
|
|
66
|
+
name: '${resourcePrefix}-env'
|
|
67
|
+
location: location
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Container App
|
|
72
|
+
module containerApp 'modules/container-app.bicep' = {
|
|
73
|
+
name: 'containerApp'
|
|
74
|
+
params: {
|
|
75
|
+
name: resourcePrefix
|
|
76
|
+
location: location
|
|
77
|
+
environmentId: containerAppEnv.outputs.id
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Recursos Recomendados por Tier
|
|
83
|
+
|
|
84
|
+
### Free Tier (Sem aprovação)
|
|
85
|
+
|
|
86
|
+
| Recurso | Config | Custo |
|
|
87
|
+
|---------|--------|-------|
|
|
88
|
+
| Azure SQL | Free 32GB | $0 |
|
|
89
|
+
| Container Apps | Scale to zero | ~$0 |
|
|
90
|
+
| Storage | LRS 5GB | ~$0 |
|
|
91
|
+
| App Insights | Free tier | $0 |
|
|
92
|
+
|
|
93
|
+
### Basic Tier (Até $10/mês)
|
|
94
|
+
|
|
95
|
+
| Recurso | Config | Custo |
|
|
96
|
+
|---------|--------|-------|
|
|
97
|
+
| Azure SQL | Basic DTU | ~$5 |
|
|
98
|
+
| Service Bus | Basic | ~$0.05 |
|
|
99
|
+
| Key Vault | Standard | ~$0.03 |
|
|
100
|
+
|
|
101
|
+
## Comandos de Deploy
|
|
102
|
+
|
|
103
|
+
```powershell
|
|
104
|
+
# Criar resource group
|
|
105
|
+
az group create --name rg-{app}-{env} --location brazilsouth
|
|
106
|
+
|
|
107
|
+
# Deploy com Bicep
|
|
108
|
+
az deployment group create \
|
|
109
|
+
--resource-group rg-{app}-{env} \
|
|
110
|
+
--template-file infra/main.bicep \
|
|
111
|
+
--parameters @infra/parameters.{env}.json
|
|
112
|
+
|
|
113
|
+
# Validar antes de deploy
|
|
114
|
+
az deployment group what-if \
|
|
115
|
+
--resource-group rg-{app}-{env} \
|
|
116
|
+
--template-file infra/main.bicep \
|
|
117
|
+
--parameters @infra/parameters.{env}.json
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Quando usar SDK .NET vs Bicep
|
|
121
|
+
|
|
122
|
+
| Recurso | Abordagem | Motivo |
|
|
123
|
+
|---------|-----------|--------|
|
|
124
|
+
| SQL, Storage, Container Apps | Bicep | Infra estática, declarativa |
|
|
125
|
+
| Azure AI, Fabric | SDK .NET | Recursos dinâmicos, runtime |
|
|
126
|
+
| Secrets | Key Vault + Bicep | Segurança |
|
|
127
|
+
|
|
128
|
+
## Documentação de Referência
|
|
129
|
+
|
|
130
|
+
- [Azure Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/)
|
|
131
|
+
- [Container Apps](https://learn.microsoft.com/en-us/azure/container-apps/)
|
|
132
|
+
- [Azure SQL](https://learn.microsoft.com/en-us/azure/azure-sql/)
|
|
133
|
+
- [Azure SDK for .NET](https://learn.microsoft.com/en-us/dotnet/azure/)
|
|
134
|
+
- [Pricing Calculator](https://azure.microsoft.com/en-us/pricing/calculator/)
|
|
135
|
+
|
|
136
|
+
## Checklist de Infraestrutura
|
|
137
|
+
|
|
138
|
+
- [ ] Bicep válido (`az bicep build`)
|
|
139
|
+
- [ ] Parâmetros para dev e prod
|
|
140
|
+
- [ ] Custos estimados e documentados
|
|
141
|
+
- [ ] Secrets no Key Vault (não hardcoded)
|
|
142
|
+
- [ ] Logs configurados (App Insights)
|
|
143
|
+
- [ ] Scale-to-zero onde possível
|
|
144
|
+
- [ ] Naming convention consistente
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
148
|
*MORPH-SPEC by Polymorphism Tech*
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: infra-architect
|
|
3
|
+
description: Infrastructure Squad Leader for cloud-agnostic infrastructure coordination. Use when planning deployments, provisioning any cloud resources, setting up CI/CD pipelines, containerizing applications, or designing infrastructure architecture regardless of cloud provider.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Infrastructure Squad Leader
|
|
8
|
+
|
|
9
|
+
Cloud-agnostic infrastructure coordinator. Delegates to cloud-specific specialists.
|
|
10
|
+
|
|
11
|
+
## Responsabilidades
|
|
12
|
+
|
|
13
|
+
1. **Coordenar especialistas de infra** independente do cloud provider
|
|
14
|
+
2. **Decidir stack de infra** com base no config do projeto
|
|
15
|
+
3. **Garantir IaC** — tudo via código, nada manual
|
|
16
|
+
4. **CI/CD** — pipelines para todos os ambientes
|
|
17
|
+
|
|
18
|
+
## Quando ativar sub-especialistas
|
|
19
|
+
|
|
20
|
+
| Cenário | Especialista |
|
|
21
|
+
|---------|-------------|
|
|
22
|
+
| Deploy em Azure | azure-architect |
|
|
23
|
+
| Templates Bicep | bicep-architect (via azure-architect) |
|
|
24
|
+
| Pipelines CI/CD | devops-engineer |
|
|
25
|
+
| Docker / containers | container-specialist |
|
|
26
|
+
| Logs / métricas | observability-expert |
|
|
27
|
+
| Auth Microsoft/Entra | azure-identity (via azure-architect) |
|
|
28
|
+
|
|
29
|
+
## Princípio: Infrastructure as Code
|
|
30
|
+
|
|
31
|
+
> Nunca criar recursos de infra manualmente. Toda infra via código (Bicep, Terraform, Pulumi, Compose).
|
|
32
|
+
|
|
33
|
+
## Checklist de Infra
|
|
34
|
+
|
|
35
|
+
- [ ] Cloud provider definido em config.json
|
|
36
|
+
- [ ] IaC templates criados e validados
|
|
37
|
+
- [ ] Ambientes dev/staging/prod separados
|
|
38
|
+
- [ ] Secrets nunca hardcoded
|
|
39
|
+
- [ ] CI/CD pipeline configurado
|
|
40
|
+
- [ ] Observability básica (logs + métricas)
|
|
41
|
+
- [ ] Estimativa de custos documentada
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
*MORPH-SPEC by Polymorphism Tech*
|