@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
package/README.md
CHANGED
|
@@ -1,516 +1,515 @@
|
|
|
1
|
-
<h1 align="center">MORPH-SPEC</h1>
|
|
2
|
-
|
|
3
|
-
<p align="center">
|
|
4
|
-
<strong>Desenvolvimento orientado por especificações com agentes AI</strong><br>
|
|
5
|
-
<em>by Polymorphism Tech</em>
|
|
6
|
-
</p>
|
|
7
|
-
|
|
8
|
-
<p align="center">
|
|
9
|
-
<a href="https://www.npmjs.com/package/@polymorphism-tech/morph-spec"><img src="https://img.shields.io/npm/v/@polymorphism-tech/morph-spec.svg" alt="npm version"></a>
|
|
10
|
-
<a href="https://www.npmjs.com/package/@polymorphism-tech/morph-spec"><img src="https://img.shields.io/npm/dm/@polymorphism-tech/morph-spec.svg" alt="npm downloads"></a>
|
|
11
|
-
<a href="#licença"><img src="https://img.shields.io/npm/l/@polymorphism-tech/morph-spec.svg" alt="license"></a>
|
|
12
|
-
</p>
|
|
13
|
-
|
|
14
|
-
<p align="center">
|
|
15
|
-
<a href="#instalação">Instalação</a> •
|
|
16
|
-
<a href="#começando">Começando</a> •
|
|
17
|
-
<a href="#comandos">Comandos</a> •
|
|
18
|
-
<a href="#agentes">Agentes</a> •
|
|
19
|
-
<a href="docs/">Documentação</a>
|
|
20
|
-
</p>
|
|
21
|
-
|
|
22
|
-
<p align="center">
|
|
23
|
-
<strong>📚 Guias de Uso:</strong>
|
|
24
|
-
<a href="QUICKSTART.md">Quick Start</a> •
|
|
25
|
-
<a href="CHEATSHEET.md">Cheat Sheet</a> •
|
|
26
|
-
<a href="docs/README.md">API Docs</a>
|
|
27
|
-
</p>
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## O que é MORPH-SPEC?
|
|
32
|
-
|
|
33
|
-
**M**ethodical **O**rchestration for **R**eliable **P**roduction-ready **SPEC**-driven development
|
|
34
|
-
|
|
35
|
-
MORPH-SPEC é um framework de desenvolvimento orientado por especificações com **17 agentes AI especializados**. Cada agente tem expertise em tecnologias específicas e segue workflows estruturados para entregar código production-ready.
|
|
36
|
-
|
|
37
|
-
**Stacks suportadas:** .NET/Blazor, .NET/Next.js
|
|
38
|
-
**Infraestrutura:** Azure Bicep (IaC)
|
|
39
|
-
**Ferramenta:** Claude Code
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Instalação
|
|
44
|
-
|
|
45
|
-
### Pré-requisitos
|
|
46
|
-
|
|
47
|
-
- [Node.js](https://nodejs.org/) 18+
|
|
48
|
-
- [Claude Code](https://claude.ai/code) instalado
|
|
49
|
-
|
|
50
|
-
### Instalação Rápida (Recomendado)
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
# Navegue até seu projeto
|
|
54
|
-
cd /caminho/do/seu/projeto
|
|
55
|
-
|
|
56
|
-
# Execute o instalador (não precisa instalar nada)
|
|
57
|
-
npx @polymorphism-tech/morph-spec init
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Instalação Global (Opcional)
|
|
61
|
-
|
|
62
|
-
Se preferir ter o comando disponível globalmente:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
npm install -g @polymorphism-tech/morph-spec
|
|
66
|
-
morph-spec init
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
<details>
|
|
70
|
-
<summary><strong>⚠️ Windows + nvm-windows: Comando não reconhecido?</strong></summary>
|
|
71
|
-
|
|
72
|
-
Se você usa **nvm-windows** para gerenciar versões do Node.js, o npm **não** adiciona automaticamente os pacotes globais ao PATH. Este é um [problema conhecido do nvm-windows](https://github.com/coreybutler/nvm-windows/issues/391).
|
|
73
|
-
|
|
74
|
-
### Solução 1: Adicionar ao PATH manualmente
|
|
75
|
-
|
|
76
|
-
**PowerShell (executar como Administrador):**
|
|
77
|
-
```powershell
|
|
78
|
-
# Verificar o caminho do npm global
|
|
79
|
-
npm config get prefix
|
|
80
|
-
|
|
81
|
-
# Adicionar ao PATH (substitua pelo caminho acima)
|
|
82
|
-
$npmPath = "$env:APPDATA\npm"
|
|
83
|
-
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$npmPath", "User")
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Depois, **feche e reabra o terminal**.
|
|
87
|
-
|
|
88
|
-
### Solução 2: Use npx (Recomendado)
|
|
89
|
-
|
|
90
|
-
O `npx` funciona sem configurar PATH:
|
|
91
|
-
```bash
|
|
92
|
-
npx @polymorphism-tech/morph-spec init
|
|
93
|
-
npx @polymorphism-tech/morph-spec doctor
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Verificar se funcionou
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
morph-spec --version
|
|
100
|
-
# Ou
|
|
101
|
-
npx @polymorphism-tech/morph-spec --version
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Mais Ajuda
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
morph-spec doctor # Detecta problemas de PATH automaticamente
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Veja também: [Troubleshooting](#troubleshooting)
|
|
111
|
-
|
|
112
|
-
</details>
|
|
113
|
-
|
|
114
|
-
### Comandos CLI
|
|
115
|
-
|
|
116
|
-
| Comando | Descrição |
|
|
117
|
-
|---------|-----------|
|
|
118
|
-
| `morph-spec init` | Inicializa MORPH no diretório atual |
|
|
119
|
-
| `morph-spec init --force` | Sobrescreve instalação existente |
|
|
120
|
-
| `morph-spec update` | Atualiza projeto para versão mais recente |
|
|
121
|
-
| `morph-spec update --templates` | Atualiza apenas templates |
|
|
122
|
-
| `morph-spec update --standards` | Atualiza apenas standards |
|
|
123
|
-
| `morph-spec doctor` | Verifica saúde e versões da instalação |
|
|
124
|
-
|
|
125
|
-
### Verificar Instalação
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
morph-spec doctor
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
O comando `doctor` verifica:
|
|
132
|
-
- ✓ Versão do CLI (se está atualizada)
|
|
133
|
-
- ✓ Versão do MORPH no projeto
|
|
134
|
-
- ✓ Estrutura de arquivos e configurações
|
|
135
|
-
|
|
136
|
-
Ou abra seu projeto no Claude Code e execute:
|
|
137
|
-
```
|
|
138
|
-
/morph-status
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## Mantendo Atualizado
|
|
144
|
-
|
|
145
|
-
### 1. Verificar se há atualizações
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
morph-spec doctor
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
Isso mostrará se há versões mais recentes disponíveis.
|
|
152
|
-
|
|
153
|
-
### 2. Atualizar para a versão mais recente
|
|
154
|
-
|
|
155
|
-
**Instalação Global:**
|
|
156
|
-
```bash
|
|
157
|
-
# Primeiro, atualize o CLI
|
|
158
|
-
npm install -g @polymorphism-tech/morph-spec@latest
|
|
159
|
-
|
|
160
|
-
# Depois, atualize seu projeto
|
|
161
|
-
cd /caminho/do/seu/projeto
|
|
162
|
-
morph-spec update
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**Usando npx (Recomendado - sempre pega a versão mais recente):**
|
|
166
|
-
```bash
|
|
167
|
-
cd /caminho/do/seu/projeto
|
|
168
|
-
npx @polymorphism-tech/morph-spec@latest update
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### 3. O que é atualizado?
|
|
172
|
-
|
|
173
|
-
O comando `update` sincroniza:
|
|
174
|
-
- ✅ Templates (`.morph/templates/`)
|
|
175
|
-
- ✅ Standards (`.morph/standards/`)
|
|
176
|
-
- ✅ Agentes (`.morph/config/agents.json`)
|
|
177
|
-
- ✅ Comandos Claude (`.claude/commands/`)
|
|
178
|
-
- ✅ Skills (`.claude/skills/`)
|
|
179
|
-
- ✅ Instruções (CLAUDE.md)
|
|
180
|
-
|
|
181
|
-
**Importante:** Seu `config.json` é preservado!
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Começando
|
|
186
|
-
|
|
187
|
-
### 1. Criar uma Proposta
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
/morph-proposal minha-feature
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
Descreva o que quer implementar. O MORPH vai gerar a especificação completa.
|
|
194
|
-
|
|
195
|
-
### 2. Revisar a Spec
|
|
196
|
-
|
|
197
|
-
Arquivos gerados em `.morph/features/minha-feature/`:
|
|
198
|
-
- `spec.md` - Especificação técnica
|
|
199
|
-
- `contracts.cs` - Interfaces e DTOs
|
|
200
|
-
- `decisions.md` - Decisões arquiteturais
|
|
201
|
-
|
|
202
|
-
### 3. Aprovar o Design
|
|
203
|
-
|
|
204
|
-
Revise os arquivos gerados e aprove (ou peça ajustes).
|
|
205
|
-
|
|
206
|
-
### 4. Implementar
|
|
207
|
-
|
|
208
|
-
```
|
|
209
|
-
/morph-apply minha-feature
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
O MORPH implementa task por task, com testes a cada etapa.
|
|
213
|
-
|
|
214
|
-
### 5. Arquivar
|
|
215
|
-
|
|
216
|
-
```
|
|
217
|
-
/morph-archive minha-feature
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
Move a feature concluída para o arquivo.
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
## Como Funciona
|
|
225
|
-
|
|
226
|
-
```
|
|
227
|
-
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
228
|
-
│ SETUP │ ─▶ │ DESIGN │ ─▶ │ CLARIFY │ ─▶ │ TASKS │ ─▶ │IMPLEMENT │
|
|
229
|
-
│ │ │ │ │ │ │ │ │ │
|
|
230
|
-
│ Contexto │ │ Spec + │ │ Q&A + │ │ Quebra │ │ Executa │
|
|
231
|
-
│ + Agents │ │Contracts │ │ Edges │ │ Tasks │ │ + Testa │
|
|
232
|
-
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
|
|
233
|
-
⛔ ⛔
|
|
234
|
-
Aprovação Aprovação
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
**Pontos de aprovação:** O MORPH para em 2 momentos para você revisar antes de continuar.
|
|
238
|
-
|
|
239
|
-
---
|
|
240
|
-
|
|
241
|
-
## Comandos Claude Code
|
|
242
|
-
|
|
243
|
-
| Comando | Descrição |
|
|
244
|
-
|---------|-----------|
|
|
245
|
-
| `/morph-proposal <nome>` | Cria nova feature |
|
|
246
|
-
| `/morph-apply <nome>` | Implementa feature aprovada |
|
|
247
|
-
| `/morph-status` | Mostra status do projeto |
|
|
248
|
-
| `/morph-archive <nome>` | Arquiva feature concluída |
|
|
249
|
-
| `/morph-infra <ação>` | Gerencia infraestrutura (init, validate, deploy) |
|
|
250
|
-
| `/morph-costs` | Estima custos Azure |
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## Agentes
|
|
255
|
-
|
|
256
|
-
### Sempre Ativos
|
|
257
|
-
|
|
258
|
-
| Agente | Função |
|
|
259
|
-
|--------|--------|
|
|
260
|
-
| 📐 **Standards Architect** | Padrões de código e consistência |
|
|
261
|
-
| ☁️ **Azure Architect** | Infraestrutura cloud e IaC |
|
|
262
|
-
| 💰 **Cost Guardian** | Controle de custos |
|
|
263
|
-
|
|
264
|
-
### Por Stack
|
|
265
|
-
|
|
266
|
-
| Agente | Keywords |
|
|
267
|
-
|--------|----------|
|
|
268
|
-
| 🔥 **Blazor Builder** | blazor, razor, component |
|
|
269
|
-
| ⚛️ **NextJS Expert** | nextjs, react, frontend |
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
|
277
|
-
|
|
|
278
|
-
|
|
|
279
|
-
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
|
287
|
-
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
|
295
|
-
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
| [
|
|
305
|
-
| [
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
├──
|
|
319
|
-
├──
|
|
320
|
-
│ ├── config
|
|
321
|
-
│ │
|
|
322
|
-
│
|
|
323
|
-
│ ├──
|
|
324
|
-
│ │ ├──
|
|
325
|
-
│ │
|
|
326
|
-
│
|
|
327
|
-
│ ├──
|
|
328
|
-
│ │ ├──
|
|
329
|
-
│ │
|
|
330
|
-
│
|
|
331
|
-
│ ├──
|
|
332
|
-
│
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
|
364
|
-
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
- ✓ Versão do
|
|
414
|
-
- ✓
|
|
415
|
-
- ✓
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
**
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
**
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
**
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
morph-spec
|
|
464
|
-
morph-spec --help
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
**
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
- ✅
|
|
485
|
-
- ✅
|
|
486
|
-
- ✅
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
- ❌
|
|
491
|
-
- ❌
|
|
492
|
-
- ❌
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
-
|
|
502
|
-
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
-
|
|
510
|
-
-
|
|
511
|
-
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
*MORPH-SPEC by Polymorphism Tech*
|
|
1
|
+
<h1 align="center">MORPH-SPEC</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>Desenvolvimento orientado por especificações com agentes AI</strong><br>
|
|
5
|
+
<em>by Polymorphism Tech</em>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<p align="center">
|
|
9
|
+
<a href="https://www.npmjs.com/package/@polymorphism-tech/morph-spec"><img src="https://img.shields.io/npm/v/@polymorphism-tech/morph-spec.svg" alt="npm version"></a>
|
|
10
|
+
<a href="https://www.npmjs.com/package/@polymorphism-tech/morph-spec"><img src="https://img.shields.io/npm/dm/@polymorphism-tech/morph-spec.svg" alt="npm downloads"></a>
|
|
11
|
+
<a href="#licença"><img src="https://img.shields.io/npm/l/@polymorphism-tech/morph-spec.svg" alt="license"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="#instalação">Instalação</a> •
|
|
16
|
+
<a href="#começando">Começando</a> •
|
|
17
|
+
<a href="#comandos">Comandos</a> •
|
|
18
|
+
<a href="#agentes">Agentes</a> •
|
|
19
|
+
<a href="docs/">Documentação</a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<strong>📚 Guias de Uso:</strong>
|
|
24
|
+
<a href="QUICKSTART.md">Quick Start</a> •
|
|
25
|
+
<a href="CHEATSHEET.md">Cheat Sheet</a> •
|
|
26
|
+
<a href="docs/README.md">API Docs</a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## O que é MORPH-SPEC?
|
|
32
|
+
|
|
33
|
+
**M**ethodical **O**rchestration for **R**eliable **P**roduction-ready **SPEC**-driven development
|
|
34
|
+
|
|
35
|
+
MORPH-SPEC é um framework de desenvolvimento orientado por especificações com **17 agentes AI especializados**. Cada agente tem expertise em tecnologias específicas e segue workflows estruturados para entregar código production-ready.
|
|
36
|
+
|
|
37
|
+
**Stacks suportadas:** .NET/Blazor, .NET/Next.js
|
|
38
|
+
**Infraestrutura:** Azure Bicep (IaC)
|
|
39
|
+
**Ferramenta:** Claude Code
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Instalação
|
|
44
|
+
|
|
45
|
+
### Pré-requisitos
|
|
46
|
+
|
|
47
|
+
- [Node.js](https://nodejs.org/) 18+
|
|
48
|
+
- [Claude Code](https://claude.ai/code) instalado
|
|
49
|
+
|
|
50
|
+
### Instalação Rápida (Recomendado)
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Navegue até seu projeto
|
|
54
|
+
cd /caminho/do/seu/projeto
|
|
55
|
+
|
|
56
|
+
# Execute o instalador (não precisa instalar nada)
|
|
57
|
+
npx @polymorphism-tech/morph-spec init
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Instalação Global (Opcional)
|
|
61
|
+
|
|
62
|
+
Se preferir ter o comando disponível globalmente:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npm install -g @polymorphism-tech/morph-spec
|
|
66
|
+
morph-spec init
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
<details>
|
|
70
|
+
<summary><strong>⚠️ Windows + nvm-windows: Comando não reconhecido?</strong></summary>
|
|
71
|
+
|
|
72
|
+
Se você usa **nvm-windows** para gerenciar versões do Node.js, o npm **não** adiciona automaticamente os pacotes globais ao PATH. Este é um [problema conhecido do nvm-windows](https://github.com/coreybutler/nvm-windows/issues/391).
|
|
73
|
+
|
|
74
|
+
### Solução 1: Adicionar ao PATH manualmente
|
|
75
|
+
|
|
76
|
+
**PowerShell (executar como Administrador):**
|
|
77
|
+
```powershell
|
|
78
|
+
# Verificar o caminho do npm global
|
|
79
|
+
npm config get prefix
|
|
80
|
+
|
|
81
|
+
# Adicionar ao PATH (substitua pelo caminho acima)
|
|
82
|
+
$npmPath = "$env:APPDATA\npm"
|
|
83
|
+
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$npmPath", "User")
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Depois, **feche e reabra o terminal**.
|
|
87
|
+
|
|
88
|
+
### Solução 2: Use npx (Recomendado)
|
|
89
|
+
|
|
90
|
+
O `npx` funciona sem configurar PATH:
|
|
91
|
+
```bash
|
|
92
|
+
npx @polymorphism-tech/morph-spec init
|
|
93
|
+
npx @polymorphism-tech/morph-spec doctor
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Verificar se funcionou
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
morph-spec --version
|
|
100
|
+
# Ou
|
|
101
|
+
npx @polymorphism-tech/morph-spec --version
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Mais Ajuda
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
morph-spec doctor # Detecta problemas de PATH automaticamente
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Veja também: [Troubleshooting](#troubleshooting)
|
|
111
|
+
|
|
112
|
+
</details>
|
|
113
|
+
|
|
114
|
+
### Comandos CLI
|
|
115
|
+
|
|
116
|
+
| Comando | Descrição |
|
|
117
|
+
|---------|-----------|
|
|
118
|
+
| `morph-spec init` | Inicializa MORPH no diretório atual |
|
|
119
|
+
| `morph-spec init --force` | Sobrescreve instalação existente |
|
|
120
|
+
| `morph-spec update` | Atualiza projeto para versão mais recente |
|
|
121
|
+
| `morph-spec update --templates` | Atualiza apenas templates |
|
|
122
|
+
| `morph-spec update --standards` | Atualiza apenas standards |
|
|
123
|
+
| `morph-spec doctor` | Verifica saúde e versões da instalação |
|
|
124
|
+
|
|
125
|
+
### Verificar Instalação
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
morph-spec doctor
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
O comando `doctor` verifica:
|
|
132
|
+
- ✓ Versão do CLI (se está atualizada)
|
|
133
|
+
- ✓ Versão do MORPH no projeto
|
|
134
|
+
- ✓ Estrutura de arquivos e configurações
|
|
135
|
+
|
|
136
|
+
Ou abra seu projeto no Claude Code e execute:
|
|
137
|
+
```
|
|
138
|
+
/morph-status
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Mantendo Atualizado
|
|
144
|
+
|
|
145
|
+
### 1. Verificar se há atualizações
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
morph-spec doctor
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Isso mostrará se há versões mais recentes disponíveis.
|
|
152
|
+
|
|
153
|
+
### 2. Atualizar para a versão mais recente
|
|
154
|
+
|
|
155
|
+
**Instalação Global:**
|
|
156
|
+
```bash
|
|
157
|
+
# Primeiro, atualize o CLI
|
|
158
|
+
npm install -g @polymorphism-tech/morph-spec@latest
|
|
159
|
+
|
|
160
|
+
# Depois, atualize seu projeto
|
|
161
|
+
cd /caminho/do/seu/projeto
|
|
162
|
+
morph-spec update
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Usando npx (Recomendado - sempre pega a versão mais recente):**
|
|
166
|
+
```bash
|
|
167
|
+
cd /caminho/do/seu/projeto
|
|
168
|
+
npx @polymorphism-tech/morph-spec@latest update
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### 3. O que é atualizado?
|
|
172
|
+
|
|
173
|
+
O comando `update` sincroniza:
|
|
174
|
+
- ✅ Templates (`.morph/templates/`)
|
|
175
|
+
- ✅ Standards (`.morph/standards/`)
|
|
176
|
+
- ✅ Agentes (`.morph/config/agents.json`)
|
|
177
|
+
- ✅ Comandos Claude (`.claude/commands/`)
|
|
178
|
+
- ✅ Skills (`.claude/skills/`)
|
|
179
|
+
- ✅ Instruções (CLAUDE.md)
|
|
180
|
+
|
|
181
|
+
**Importante:** Seu `config.json` é preservado!
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Começando
|
|
186
|
+
|
|
187
|
+
### 1. Criar uma Proposta
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
/morph-proposal minha-feature
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Descreva o que quer implementar. O MORPH vai gerar a especificação completa.
|
|
194
|
+
|
|
195
|
+
### 2. Revisar a Spec
|
|
196
|
+
|
|
197
|
+
Arquivos gerados em `.morph/features/minha-feature/`:
|
|
198
|
+
- `spec.md` - Especificação técnica
|
|
199
|
+
- `contracts.cs` - Interfaces e DTOs
|
|
200
|
+
- `decisions.md` - Decisões arquiteturais
|
|
201
|
+
|
|
202
|
+
### 3. Aprovar o Design
|
|
203
|
+
|
|
204
|
+
Revise os arquivos gerados e aprove (ou peça ajustes).
|
|
205
|
+
|
|
206
|
+
### 4. Implementar
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
/morph-apply minha-feature
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
O MORPH implementa task por task, com testes a cada etapa.
|
|
213
|
+
|
|
214
|
+
### 5. Arquivar
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
/morph-archive minha-feature
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Move a feature concluída para o arquivo.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Como Funciona
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
228
|
+
│ SETUP │ ─▶ │ DESIGN │ ─▶ │ CLARIFY │ ─▶ │ TASKS │ ─▶ │IMPLEMENT │
|
|
229
|
+
│ │ │ │ │ │ │ │ │ │
|
|
230
|
+
│ Contexto │ │ Spec + │ │ Q&A + │ │ Quebra │ │ Executa │
|
|
231
|
+
│ + Agents │ │Contracts │ │ Edges │ │ Tasks │ │ + Testa │
|
|
232
|
+
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
|
|
233
|
+
⛔ ⛔
|
|
234
|
+
Aprovação Aprovação
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Pontos de aprovação:** O MORPH para em 2 momentos para você revisar antes de continuar.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Comandos Claude Code
|
|
242
|
+
|
|
243
|
+
| Comando | Descrição |
|
|
244
|
+
|---------|-----------|
|
|
245
|
+
| `/morph-proposal <nome>` | Cria nova feature |
|
|
246
|
+
| `/morph-apply <nome>` | Implementa feature aprovada |
|
|
247
|
+
| `/morph-status` | Mostra status do projeto |
|
|
248
|
+
| `/morph-archive <nome>` | Arquiva feature concluída |
|
|
249
|
+
| `/morph-infra <ação>` | Gerencia infraestrutura (init, validate, deploy) |
|
|
250
|
+
| `/morph-costs` | Estima custos Azure |
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Agentes
|
|
255
|
+
|
|
256
|
+
### Sempre Ativos
|
|
257
|
+
|
|
258
|
+
| Agente | Função |
|
|
259
|
+
|--------|--------|
|
|
260
|
+
| 📐 **Standards Architect** | Padrões de código e consistência |
|
|
261
|
+
| ☁️ **Azure Architect** | Infraestrutura cloud e IaC |
|
|
262
|
+
| 💰 **Cost Guardian** | Controle de custos |
|
|
263
|
+
|
|
264
|
+
### Por Stack
|
|
265
|
+
|
|
266
|
+
| Agente | Keywords |
|
|
267
|
+
|--------|----------|
|
|
268
|
+
| 🔥 **Blazor Builder** | blazor, razor, component |
|
|
269
|
+
| ⚛️ **NextJS Expert** | nextjs, react, frontend |
|
|
270
|
+
|
|
271
|
+
### Especialistas
|
|
272
|
+
|
|
273
|
+
| Agente | Keywords |
|
|
274
|
+
|--------|----------|
|
|
275
|
+
| 🗄️ **EF Modeler** | database, entity, migration |
|
|
276
|
+
| 🤖 **MS Agent Expert** | agent, ai, semantic kernel |
|
|
277
|
+
| ⏰ **Hangfire Orchestrator** | scheduled, job, background |
|
|
278
|
+
| 🎨 **UI/UX Designer** | wizard, dashboard, complex form |
|
|
279
|
+
| 📋 **PO/PM Advisor** | unclear, requirements, ROI |
|
|
280
|
+
|
|
281
|
+
### Integrações
|
|
282
|
+
|
|
283
|
+
| Agente | Keywords |
|
|
284
|
+
|--------|----------|
|
|
285
|
+
| 💳 **Asaas Financial** | asaas, pix, boleto, payment |
|
|
286
|
+
| 🔐 **Clerk Auth** | clerk, auth, login |
|
|
287
|
+
| 🆔 **Azure Identity** | identity, entra, microsoft auth |
|
|
288
|
+
|
|
289
|
+
### Infraestrutura
|
|
290
|
+
|
|
291
|
+
| Agente | Keywords |
|
|
292
|
+
|--------|----------|
|
|
293
|
+
| 🏗️ **Bicep Architect** | bicep, iac, infra |
|
|
294
|
+
| 🚀 **DevOps Engineer** | pipeline, ci/cd, deploy |
|
|
295
|
+
| 📦 **Container Specialist** | docker, container |
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Exemplos
|
|
300
|
+
|
|
301
|
+
| Exemplo | Descrição |
|
|
302
|
+
|---------|-----------|
|
|
303
|
+
| [micro-saas](content/.morph/examples/micro-saas/) | SaaS completo com Blazor + Asaas billing |
|
|
304
|
+
| [api-nextjs](content/.morph/examples/api-nextjs/) | .NET API + Next.js frontend |
|
|
305
|
+
| [multi-agent](content/.morph/examples/multi-agent/) | Sistema multi-agente com Semantic Kernel |
|
|
306
|
+
|
|
307
|
+
Cada exemplo inclui: `README.md`, `spec.md`, `contracts.cs`, `tasks.md`, `decisions.md`
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Estrutura do Projeto
|
|
312
|
+
|
|
313
|
+
Após a instalação, seu projeto terá:
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
seu-projeto/
|
|
317
|
+
├── CLAUDE.md # Instruções para o AI
|
|
318
|
+
├── .morph/
|
|
319
|
+
│ ├── config/ # Configurações
|
|
320
|
+
│ │ ├── config.json
|
|
321
|
+
│ │ └── agents.json
|
|
322
|
+
│ ├── standards/ # Padrões de código
|
|
323
|
+
│ │ ├── coding.md
|
|
324
|
+
│ │ ├── architecture.md
|
|
325
|
+
│ │ └── azure.md
|
|
326
|
+
│ ├── templates/ # Templates de código e IaC
|
|
327
|
+
│ │ ├── infra/
|
|
328
|
+
│ │ ├── integrations/
|
|
329
|
+
│ │ └── saas/
|
|
330
|
+
│ ├── examples/ # Exemplos completos
|
|
331
|
+
│ ├── features/ # Features em desenvolvimento
|
|
332
|
+
│ └── archive/ # Features concluídas
|
|
333
|
+
└── .claude/
|
|
334
|
+
├── commands/ # Slash commands
|
|
335
|
+
└── skills/ # Skills dos agentes
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Templates Incluídos
|
|
341
|
+
|
|
342
|
+
### IaC (Bicep)
|
|
343
|
+
- `main.bicep`, `container-app.bicep`, `sql-database.bicep`, `storage.bicep`, `key-vault.bicep`, `app-insights.bicep`
|
|
344
|
+
|
|
345
|
+
### Integrações
|
|
346
|
+
- `asaas-client.cs`, `asaas-webhook.cs`, `clerk-config.cs`, `azure-identity-config.cs`
|
|
347
|
+
|
|
348
|
+
### SaaS
|
|
349
|
+
- `subscription.cs`, `tenant.cs`
|
|
350
|
+
|
|
351
|
+
### Código
|
|
352
|
+
- `service.cs`, `repository.cs`, `component.razor`, `agent.cs`, `job.cs`, `test.cs`
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Custos
|
|
357
|
+
|
|
358
|
+
O MORPH segue a filosofia **"Free tier first"**:
|
|
359
|
+
|
|
360
|
+
| Nível | Limite | Requer |
|
|
361
|
+
|-------|--------|--------|
|
|
362
|
+
| Sem aprovação | Free tier | Nada |
|
|
363
|
+
| Com aprovação | Até $10/mês | Confirmação |
|
|
364
|
+
| Acima de $10 | Justificativa | ADR |
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## 🔧 Troubleshooting
|
|
369
|
+
|
|
370
|
+
### Comando `morph-spec` não encontrado
|
|
371
|
+
|
|
372
|
+
**Sintoma:** Após `npm install -g`, o comando não é reconhecido.
|
|
373
|
+
|
|
374
|
+
**Diagnóstico:**
|
|
375
|
+
```bash
|
|
376
|
+
npm config get prefix # Ver onde npm instala globalmente
|
|
377
|
+
echo $PATH # Linux/Mac: Verificar se está no PATH
|
|
378
|
+
$env:Path # Windows: Verificar se está no PATH
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
**Causa comum:** Você está usando **nvm** ou **nvm-windows**, que não adiciona automaticamente npm global ao PATH.
|
|
382
|
+
|
|
383
|
+
**Solução 1 - Usar npx (Recomendado):**
|
|
384
|
+
```bash
|
|
385
|
+
npx @polymorphism-tech/morph-spec init
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
**Solução 2 - Adicionar ao PATH:**
|
|
389
|
+
|
|
390
|
+
**Linux/Mac:**
|
|
391
|
+
```bash
|
|
392
|
+
# Adicionar ao ~/.bashrc ou ~/.zshrc
|
|
393
|
+
export PATH="$HOME/.npm-global/bin:$PATH"
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
**Windows (PowerShell como Admin):**
|
|
397
|
+
```powershell
|
|
398
|
+
$npmPath = "$env:APPDATA\npm"
|
|
399
|
+
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$npmPath", "User")
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
**Verificar correção:**
|
|
403
|
+
```bash
|
|
404
|
+
morph-spec --version
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
### `morph-spec doctor` reporta problemas
|
|
410
|
+
|
|
411
|
+
**O que o doctor verifica:**
|
|
412
|
+
- ✓ Versão do CLI (atualizada?)
|
|
413
|
+
- ✓ Versão do MORPH no projeto
|
|
414
|
+
- ✓ Comando morph-spec no PATH
|
|
415
|
+
- ✓ Estrutura de arquivos (.morph/, CLAUDE.md, etc.)
|
|
416
|
+
|
|
417
|
+
**Se reportar "morph-spec not in PATH":**
|
|
418
|
+
1. Use `npx` como alternativa (sempre funciona)
|
|
419
|
+
2. Ou siga as instruções acima para adicionar ao PATH
|
|
420
|
+
|
|
421
|
+
**Se reportar arquivos faltando:**
|
|
422
|
+
```bash
|
|
423
|
+
morph-spec init --force # Reinstala estrutura completa
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
### Erro ao instalar globalmente no Windows
|
|
429
|
+
|
|
430
|
+
**Erro:** `EPERM: operation not permitted`
|
|
431
|
+
|
|
432
|
+
**Causa:** Falta de permissões de administrador.
|
|
433
|
+
|
|
434
|
+
**Solução:**
|
|
435
|
+
1. Abra PowerShell ou CMD **como Administrador**
|
|
436
|
+
2. Execute: `npm install -g @polymorphism-tech/morph-spec`
|
|
437
|
+
|
|
438
|
+
**Alternativa:** Use `npx` (não requer admin):
|
|
439
|
+
```bash
|
|
440
|
+
npx @polymorphism-tech/morph-spec init
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
### nvm-windows específico
|
|
446
|
+
|
|
447
|
+
Se você usa **nvm-windows** para gerenciar versões do Node.js:
|
|
448
|
+
|
|
449
|
+
**Problema conhecido:** npm global não vai para PATH automaticamente
|
|
450
|
+
**Issue oficial:** https://github.com/coreybutler/nvm-windows/issues/391
|
|
451
|
+
|
|
452
|
+
**Recomendações:**
|
|
453
|
+
1. **Melhor opção:** Use `npx` para todos os comandos
|
|
454
|
+
2. **Alternativa:** Configure PATH manualmente (ver seção de instalação)
|
|
455
|
+
3. **Verificar:** Execute `morph-spec doctor` para diagnosticar
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
### Precisa de mais ajuda?
|
|
460
|
+
|
|
461
|
+
```bash
|
|
462
|
+
morph-spec doctor # Diagnóstico automático
|
|
463
|
+
morph-spec --help # Ver todos os comandos
|
|
464
|
+
morph-spec <comando> --help # Ajuda de comando específico
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
**Suporte:**
|
|
468
|
+
- 📧 Email: support@polymorphism.com.br
|
|
469
|
+
- 🐛 Issues: [GitHub](https://github.com/lucasPolymorphism/morph-spec-framework/issues)
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## 📄 Licença e Distribuição
|
|
474
|
+
|
|
475
|
+
**Repositório:** Privado (código fonte protegido)
|
|
476
|
+
**Package npm:** Público e gratuito via `@polymorphism-tech/morph-spec`
|
|
477
|
+
|
|
478
|
+
### Licença Proprietária
|
|
479
|
+
|
|
480
|
+
O MORPH-SPEC framework é software proprietário da Polymorphism Tech. Veja [LICENSE](LICENSE) para detalhes.
|
|
481
|
+
|
|
482
|
+
**Você PODE:**
|
|
483
|
+
- ✅ Usar o CLI tool gratuitamente
|
|
484
|
+
- ✅ Gerar projetos para uso pessoal ou comercial
|
|
485
|
+
- ✅ Modificar código gerado pelos templates
|
|
486
|
+
- ✅ Distribuir seus projetos criados com MORPH-SPEC
|
|
487
|
+
|
|
488
|
+
**Você NÃO PODE:**
|
|
489
|
+
- ❌ Redistribuir ou vender o framework
|
|
490
|
+
- ❌ Criar produtos derivados competidores
|
|
491
|
+
- ❌ Modificar ou fazer engenharia reversa do framework
|
|
492
|
+
- ❌ Remover avisos de copyright
|
|
493
|
+
|
|
494
|
+
### Código Gerado
|
|
495
|
+
|
|
496
|
+
Todo código gerado usando MORPH-SPEC é **100% seu** para usar como quiser, incluindo uso comercial.
|
|
497
|
+
|
|
498
|
+
### Suporte
|
|
499
|
+
|
|
500
|
+
- 📧 Email: support@polymorphism.com.br
|
|
501
|
+
- 🌐 Website: https://polymorphism.com.br
|
|
502
|
+
- 📦 npm: [@polymorphism-tech/morph-spec](https://www.npmjs.com/package/@polymorphism-tech/morph-spec)
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## Links
|
|
507
|
+
|
|
508
|
+
- 📦 [npm Package](https://www.npmjs.com/package/@polymorphism-tech/morph-spec)
|
|
509
|
+
- 📚 [Documentação](docs/)
|
|
510
|
+
- 💡 [Exemplos](content/.morph/examples/)
|
|
511
|
+
- 🌐 [Polymorphism Tech](https://polymorphism.com.br)
|
|
512
|
+
|
|
513
|
+
---
|
|
514
|
+
|
|
515
|
+
*MORPH-SPEC by Polymorphism Tech*
|