@polymorphism-tech/morph-spec 2.3.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +446 -1730
- package/README.md +515 -516
- package/bin/morph-spec.js +366 -294
- package/bin/task-manager.js +429 -368
- package/bin/validate.js +369 -268
- package/content/.claude/commands/morph-apply.md +221 -158
- package/content/.claude/commands/morph-deploy.md +529 -0
- 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/skills/infra/azure-deploy-specialist.md +699 -0
- package/content/.claude/skills/level-0-meta/README.md +7 -0
- package/content/.claude/skills/level-0-meta/code-review.md +226 -0
- package/content/.claude/skills/level-0-meta/morph-checklist.md +117 -0
- package/content/.claude/skills/level-0-meta/simulation-checklist.md +77 -0
- package/content/.claude/skills/level-1-workflows/README.md +7 -0
- package/content/.claude/skills/level-1-workflows/morph-replicate.md +213 -0
- package/content/.claude/{commands/morph-clarify.md → skills/level-1-workflows/phase-clarify.md} +131 -184
- package/content/.claude/{commands/morph-design.md → skills/level-1-workflows/phase-design.md} +213 -275
- package/content/.claude/skills/level-1-workflows/phase-setup.md +106 -0
- package/content/.claude/skills/level-1-workflows/phase-tasks.md +164 -0
- package/content/.claude/{commands/morph-uiux.md → skills/level-1-workflows/phase-uiux.md} +169 -211
- package/content/.claude/skills/level-2-domains/README.md +14 -0
- package/content/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +192 -0
- package/content/.claude/skills/{specialists → level-2-domains/architecture}/po-pm-advisor.md +197 -197
- package/content/.claude/skills/level-2-domains/architecture/standards-architect.md +156 -0
- package/content/.claude/skills/level-2-domains/backend/dotnet-senior.md +287 -0
- package/content/.claude/skills/level-2-domains/backend/ef-modeler.md +113 -0
- package/content/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +126 -0
- package/content/.claude/skills/level-2-domains/backend/ms-agent-expert.md +109 -0
- package/content/.claude/skills/level-2-domains/frontend/blazor-builder.md +210 -0
- package/content/.claude/skills/level-2-domains/frontend/nextjs-expert.md +154 -0
- package/content/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +191 -0
- package/content/.claude/skills/{specialists → level-2-domains/infrastructure}/azure-architect.md +142 -142
- package/content/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +126 -0
- package/content/.claude/skills/level-2-domains/infrastructure/container-specialist.md +131 -0
- package/content/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +119 -0
- package/content/.claude/skills/level-2-domains/integrations/asaas-financial.md +130 -0
- package/content/.claude/skills/level-2-domains/integrations/azure-identity.md +142 -0
- package/content/.claude/skills/level-2-domains/integrations/clerk-auth.md +108 -0
- package/content/.claude/skills/level-2-domains/integrations/resend-email.md +119 -0
- package/content/.claude/skills/level-2-domains/quality/code-analyzer.md +235 -0
- package/content/.claude/skills/level-2-domains/quality/testing-specialist.md +126 -0
- package/content/.claude/skills/level-3-technologies/README.md +7 -0
- package/content/.claude/skills/level-4-patterns/README.md +7 -0
- package/content/.claude/skills/specialists/prompt-engineer.md +189 -0
- package/content/.claude/skills/specialists/seo-growth-hacker.md +320 -0
- package/content/.morph/config/agents.json +762 -242
- package/content/.morph/config/config.template.json +122 -108
- package/content/.morph/docs/workflows/design-impl.md +37 -0
- package/content/.morph/docs/workflows/enforcement-pipeline.md +668 -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/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/hooks/README.md +348 -239
- package/content/.morph/hooks/pre-commit-agents.sh +24 -24
- package/content/.morph/hooks/task-completed.js +73 -0
- package/content/.morph/hooks/teammate-idle.js +68 -0
- package/content/.morph/schemas/tasks.schema.json +220 -0
- 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/agent-teams-workflow.md +474 -0
- package/content/.morph/standards/architecture.md +325 -325
- package/content/.morph/standards/azure.md +605 -379
- package/content/.morph/standards/dotnet10-migration.md +520 -494
- package/content/.morph/templates/CONTEXT-FEATURE.md +276 -0
- package/content/.morph/templates/CONTEXT.md +170 -0
- package/content/.morph/templates/agent.cs +163 -172
- package/content/.morph/templates/clarify-questions.md +159 -0
- 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/decisions.md +123 -106
- package/content/.morph/templates/infra/azure-pipelines-deploy.yml +480 -0
- package/content/.morph/templates/infra/deploy-checklist.md +426 -0
- package/content/.morph/templates/proposal.md +141 -155
- package/content/.morph/templates/recap.md +94 -105
- package/content/.morph/templates/simulation.md +353 -0
- package/content/.morph/templates/spec.md +149 -148
- package/content/.morph/templates/state.template.json +222 -222
- package/content/.morph/templates/tasks.md +257 -235
- package/content/.morph/templates/ui-components.md +362 -276
- package/content/CLAUDE.md +150 -442
- package/detectors/structure-detector.js +245 -250
- package/docs/README.md +144 -149
- package/docs/getting-started.md +301 -302
- package/docs/installation.md +361 -361
- package/docs/validation-checklist.md +265 -266
- package/package.json +80 -80
- package/src/commands/advance-phase.js +266 -0
- package/src/commands/analyze-blazor-concurrency.js +193 -0
- package/src/commands/deploy.js +780 -0
- package/src/commands/detect-agents.js +167 -0
- package/src/commands/doctor.js +356 -280
- package/src/commands/generate-context.js +40 -0
- 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/task.js +78 -75
- 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/context-generator.js +513 -0
- package/src/lib/continuous-validator.js +421 -440
- package/src/lib/css-validator.js +352 -0
- package/src/lib/decision-constraint-loader.js +109 -0
- package/src/lib/design-system-detector.js +187 -0
- package/src/lib/design-system-scaffolder.js +299 -0
- package/src/lib/hook-executor.js +256 -0
- package/src/lib/recap-generator.js +205 -0
- package/src/lib/spec-validator.js +258 -0
- package/src/lib/standards-context-injector.js +287 -0
- package/src/lib/state-manager.js +397 -340
- package/src/lib/team-orchestrator.js +322 -0
- package/src/lib/troubleshoot-grep.js +194 -0
- package/src/lib/troubleshoot-index.js +144 -0
- package/src/lib/validation-runner.js +283 -0
- package/src/lib/validators/contract-compliance-validator.js +273 -0
- package/src/lib/validators/design-system-validator.js +231 -0
- package/src/utils/file-copier.js +187 -139
- package/content/.claude/commands/morph-costs.md +0 -206
- package/content/.claude/commands/morph-setup.md +0 -100
- package/content/.claude/commands/morph-tasks.md +0 -319
- package/content/.claude/skills/infra/bicep-architect.md +0 -419
- package/content/.claude/skills/infra/container-specialist.md +0 -437
- package/content/.claude/skills/infra/devops-engineer.md +0 -405
- package/content/.claude/skills/integrations/asaas-financial.md +0 -333
- package/content/.claude/skills/integrations/azure-identity.md +0 -309
- package/content/.claude/skills/integrations/clerk-auth.md +0 -290
- package/content/.claude/skills/specialists/ai-system-architect.md +0 -604
- package/content/.claude/skills/specialists/cost-guardian.md +0 -110
- package/content/.claude/skills/specialists/ef-modeler.md +0 -211
- package/content/.claude/skills/specialists/hangfire-orchestrator.md +0 -255
- package/content/.claude/skills/specialists/ms-agent-expert.md +0 -263
- package/content/.claude/skills/specialists/standards-architect.md +0 -78
- package/content/.claude/skills/specialists/ui-ux-designer.md +0 -1100
- package/content/.claude/skills/stacks/dotnet-blazor.md +0 -606
- package/content/.claude/skills/stacks/dotnet-nextjs.md +0 -402
- 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
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Contracts - {{FEATURE_NAME_TITLE}}
|
|
2
|
+
|
|
3
|
+
> Estrutura de contracts para features complexas
|
|
4
|
+
|
|
5
|
+
## Estrutura
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
contracts/
|
|
9
|
+
├── README.md # Este arquivo (índice)
|
|
10
|
+
├── Entities/ # Entidades de domínio
|
|
11
|
+
│ └── I{{FEATURE_NAME_PASCAL}}Entity.cs
|
|
12
|
+
├── Commands/ # Commands (CQRS)
|
|
13
|
+
│ └── I{{FEATURE_NAME_PASCAL}}Commands.cs
|
|
14
|
+
├── Queries/ # Queries (CQRS)
|
|
15
|
+
│ └── I{{FEATURE_NAME_PASCAL}}Queries.cs
|
|
16
|
+
├── DTOs/ # Data Transfer Objects
|
|
17
|
+
│ └── {{FEATURE_NAME_PASCAL}}Dto.cs
|
|
18
|
+
├── Events/ # Domain Events
|
|
19
|
+
│ └── {{FEATURE_NAME_PASCAL}}Events.cs
|
|
20
|
+
└── Services/ # Service Interfaces
|
|
21
|
+
└── I{{FEATURE_NAME_PASCAL}}Service.cs
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Quando usar pasta vs arquivo único
|
|
25
|
+
|
|
26
|
+
| Cenário | Usar |
|
|
27
|
+
|---------|------|
|
|
28
|
+
| < 5 interfaces/DTOs | `contracts.cs` (arquivo único) |
|
|
29
|
+
| 5-15 interfaces/DTOs | `contracts/` (pasta organizada) |
|
|
30
|
+
| > 15 interfaces/DTOs | `contracts/` + subpastas por domínio |
|
|
31
|
+
|
|
32
|
+
## Convenções
|
|
33
|
+
|
|
34
|
+
1. **Prefixo `I`** para interfaces: `IOrderService`, `IPaymentGateway`
|
|
35
|
+
2. **Sufixo `Dto`** para DTOs: `OrderDto`, `OrderCreateDto`
|
|
36
|
+
3. **Sufixo `Command`** para commands: `CreateOrderCommand`
|
|
37
|
+
4. **Sufixo `Query`** para queries: `GetOrderByIdQuery`
|
|
38
|
+
5. **Sufixo `Event`** para eventos: `OrderCreatedEvent`
|
|
39
|
+
|
|
40
|
+
## Índice de Contracts
|
|
41
|
+
|
|
42
|
+
### Entidades
|
|
43
|
+
|
|
44
|
+
| Interface | Descrição | Arquivo |
|
|
45
|
+
|-----------|-----------|---------|
|
|
46
|
+
| _A ser preenchido_ | | |
|
|
47
|
+
|
|
48
|
+
### Commands
|
|
49
|
+
|
|
50
|
+
| Command | Handler | Descrição |
|
|
51
|
+
|---------|---------|-----------|
|
|
52
|
+
| _A ser preenchido_ | | |
|
|
53
|
+
|
|
54
|
+
### Queries
|
|
55
|
+
|
|
56
|
+
| Query | Handler | Descrição |
|
|
57
|
+
|-------|---------|-----------|
|
|
58
|
+
| _A ser preenchido_ | | |
|
|
59
|
+
|
|
60
|
+
### DTOs
|
|
61
|
+
|
|
62
|
+
| DTO | Usado em | Descrição |
|
|
63
|
+
|-----|----------|-----------|
|
|
64
|
+
| _A ser preenchido_ | | |
|
|
65
|
+
|
|
66
|
+
### Services
|
|
67
|
+
|
|
68
|
+
| Interface | Implementação | Descrição |
|
|
69
|
+
|-----------|---------------|-----------|
|
|
70
|
+
| _A ser preenchido_ | | |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
_Gerado por MORPH-SPEC Framework_
|
|
@@ -1,106 +1,123 @@
|
|
|
1
|
-
# Architecture Decision Records - {{FEATURE_NAME_TITLE}}
|
|
2
|
-
|
|
3
|
-
## ADR-001: {Decision Title}
|
|
4
|
-
|
|
5
|
-
**Date:** {{DATE}}
|
|
6
|
-
**Status:** Proposed | Accepted | Deprecated | Superseded
|
|
7
|
-
**Deciders:** MORPH Agents, Developer
|
|
8
|
-
|
|
9
|
-
### Context
|
|
10
|
-
|
|
11
|
-
{Descreva o contexto e o problema que levou a esta decisão}
|
|
12
|
-
|
|
13
|
-
### Decision
|
|
14
|
-
|
|
15
|
-
{Descreva a decisão tomada}
|
|
16
|
-
|
|
17
|
-
### Consequences
|
|
18
|
-
|
|
19
|
-
**Positivas:**
|
|
20
|
-
- {Consequência positiva 1}
|
|
21
|
-
- {Consequência positiva 2}
|
|
22
|
-
|
|
23
|
-
**Negativas:**
|
|
24
|
-
- {Consequência negativa 1}
|
|
25
|
-
|
|
26
|
-
**Riscos:**
|
|
27
|
-
- {Risco identificado}
|
|
28
|
-
|
|
29
|
-
### Alternatives Considered
|
|
30
|
-
|
|
31
|
-
#### Option A: {Nome}
|
|
32
|
-
- Pros: {vantagens}
|
|
33
|
-
- Cons: {desvantagens}
|
|
34
|
-
- **Rejected because:** {motivo}
|
|
35
|
-
|
|
36
|
-
#### Option B: {Nome}
|
|
37
|
-
- Pros: {vantagens}
|
|
38
|
-
- Cons: {desvantagens}
|
|
39
|
-
- **Rejected because:** {motivo}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- {
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
###
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
|
|
85
|
-
**
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
1
|
+
# Architecture Decision Records - {{FEATURE_NAME_TITLE}}
|
|
2
|
+
|
|
3
|
+
## ADR-001: {Decision Title}
|
|
4
|
+
|
|
5
|
+
**Date:** {{DATE}}
|
|
6
|
+
**Status:** Proposed | Accepted | Deprecated | Superseded
|
|
7
|
+
**Deciders:** MORPH Agents, Developer
|
|
8
|
+
|
|
9
|
+
### Context
|
|
10
|
+
|
|
11
|
+
{Descreva o contexto e o problema que levou a esta decisão}
|
|
12
|
+
|
|
13
|
+
### Decision
|
|
14
|
+
|
|
15
|
+
{Descreva a decisão tomada}
|
|
16
|
+
|
|
17
|
+
### Consequences
|
|
18
|
+
|
|
19
|
+
**Positivas:**
|
|
20
|
+
- {Consequência positiva 1}
|
|
21
|
+
- {Consequência positiva 2}
|
|
22
|
+
|
|
23
|
+
**Negativas:**
|
|
24
|
+
- {Consequência negativa 1}
|
|
25
|
+
|
|
26
|
+
**Riscos:**
|
|
27
|
+
- {Risco identificado}
|
|
28
|
+
|
|
29
|
+
### Alternatives Considered
|
|
30
|
+
|
|
31
|
+
#### Option A: {Nome}
|
|
32
|
+
- Pros: {vantagens}
|
|
33
|
+
- Cons: {desvantagens}
|
|
34
|
+
- **Rejected because:** {motivo}
|
|
35
|
+
|
|
36
|
+
#### Option B: {Nome}
|
|
37
|
+
- Pros: {vantagens}
|
|
38
|
+
- Cons: {desvantagens}
|
|
39
|
+
- **Rejected because:** {motivo}
|
|
40
|
+
|
|
41
|
+
### Fluxos Afetados
|
|
42
|
+
- **Fluxo principal:** {ex: Upload -> Pagamento -> Geracao -> Email}
|
|
43
|
+
- **Fluxo alternativo:** {ex: Upload -> Geracao -> Pagamento -> Email}
|
|
44
|
+
- **Fluxo gratuito:** {ex: Upload -> Geracao -> Download}
|
|
45
|
+
|
|
46
|
+
### Validacoes de Estado Impactadas
|
|
47
|
+
|
|
48
|
+
> **Consultar:** `framework/standards/status-validation.md`
|
|
49
|
+
|
|
50
|
+
| Service | Metodo | Estados Aceitos |
|
|
51
|
+
|---------|--------|-----------------|
|
|
52
|
+
| {ServiceName} | {MethodName} | {ex: PendingPayment, Completed} |
|
|
53
|
+
|
|
54
|
+
### Componentes UI com Comportamento Especial
|
|
55
|
+
- {ex: FluentDialog requer Hidden="true" inicial}
|
|
56
|
+
- {ex: Modal precisa de @ref para controle programatico}
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## ADR-002: Database Model
|
|
61
|
+
|
|
62
|
+
**Date:** {{DATE}}
|
|
63
|
+
**Status:** Accepted
|
|
64
|
+
|
|
65
|
+
### Context
|
|
66
|
+
|
|
67
|
+
Need to define how {Feature} data will be stored.
|
|
68
|
+
|
|
69
|
+
### Decision
|
|
70
|
+
|
|
71
|
+
Use Azure SQL with the following model:
|
|
72
|
+
- {Entity} table with {columns}
|
|
73
|
+
- JSON columns for {flexible data}
|
|
74
|
+
|
|
75
|
+
### Consequences
|
|
76
|
+
|
|
77
|
+
**Positivas:**
|
|
78
|
+
- Fits within free tier (32GB)
|
|
79
|
+
- Good query performance
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## ADR-003: AI Integration
|
|
84
|
+
|
|
85
|
+
**Date:** {{DATE}}
|
|
86
|
+
**Status:** Accepted
|
|
87
|
+
|
|
88
|
+
### Context
|
|
89
|
+
|
|
90
|
+
Feature requires AI capabilities for {purpose}.
|
|
91
|
+
|
|
92
|
+
### Decision
|
|
93
|
+
|
|
94
|
+
Use MS Agent Framework with gpt-4o-mini model.
|
|
95
|
+
|
|
96
|
+
### Consequences
|
|
97
|
+
|
|
98
|
+
**Positivas:**
|
|
99
|
+
- Cost effective (~$0.15/1M input tokens)
|
|
100
|
+
- Good enough quality for this use case
|
|
101
|
+
|
|
102
|
+
**Negativas:**
|
|
103
|
+
- Slightly less capable than gpt-4o
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Template for New ADRs
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
## ADR-XXX: {Title}
|
|
111
|
+
|
|
112
|
+
**Date:**
|
|
113
|
+
**Status:** Proposed | Accepted | Deprecated | Superseded
|
|
114
|
+
|
|
115
|
+
### Context
|
|
116
|
+
{Why is this decision needed?}
|
|
117
|
+
|
|
118
|
+
### Decision
|
|
119
|
+
{What was decided?}
|
|
120
|
+
|
|
121
|
+
### Consequences
|
|
122
|
+
{What are the results?}
|
|
123
|
+
```
|