@polymorphism-tech/morph-spec 4.2.0 → 4.3.1
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 +108 -946
- package/bin/morph-spec.js +284 -9
- package/bin/task-manager.cjs +102 -14
- package/bin/validate.js +4 -4
- package/docs/{v3.0 → next-generation}/AGENTS.md +1 -1
- package/docs/next-generation/CONTEXT-OPTIMIZATION.md +267 -0
- package/docs/next-generation/EXECUTION-FLOW.md +274 -0
- package/docs/next-generation/META-PROMPTS.md +235 -0
- package/docs/next-generation/MIGRATION-GUIDE.md +253 -0
- package/docs/next-generation/THREAD-MANAGEMENT.md +240 -0
- package/package.json +5 -5
- package/src/commands/agents/agents-fuse.js +97 -0
- package/src/commands/agents/micro-agent.js +112 -0
- package/src/commands/agents/spawn-team.js +69 -4
- package/src/commands/agents/squad-template.js +146 -0
- package/src/commands/analytics/analytics.js +176 -0
- package/src/commands/context/context-prime.js +63 -0
- package/src/commands/context/core-four.js +54 -0
- package/src/commands/mcp/mcp.js +102 -0
- package/src/commands/project/detect-agents.js +32 -2
- package/src/commands/project/detect.js +11 -1
- package/src/commands/project/doctor.js +573 -356
- package/src/commands/project/init.js +9 -2
- package/src/commands/project/update.js +13 -3
- package/src/commands/state/advance-phase.js +448 -416
- package/src/commands/state/state.js +14 -12
- package/src/commands/tasks/task.js +1 -1
- package/src/commands/templates/template-render.js +80 -1
- package/src/commands/threads/thread-template.js +103 -0
- package/src/commands/threads/threads.js +261 -0
- package/src/commands/trust/trust.js +205 -0
- package/src/{orchestrator.js → core/orchestrator.js} +8 -8
- package/src/core/state/state-manager.js +37 -17
- package/src/core/workflows/workflow-detector.js +114 -3
- package/src/lib/agents/micro-agent-factory.js +161 -0
- package/src/lib/analytics/analytics-engine.js +345 -0
- package/src/lib/checkpoints/checkpoint-hooks.js +298 -258
- package/src/lib/context/context-bundler.js +240 -0
- package/src/lib/context/context-optimizer.js +212 -0
- package/src/lib/context/context-tracker.js +273 -0
- package/src/lib/context/core-four-tracker.js +201 -0
- package/src/lib/context/mcp-optimizer.js +200 -0
- package/src/lib/detectors/index.js +1 -1
- package/src/lib/detectors/standards-generator.js +77 -17
- package/src/lib/detectors/structure-detector.js +67 -39
- package/src/lib/execution/fusion-executor.js +304 -0
- package/src/lib/execution/parallel-executor.js +270 -0
- package/src/lib/generators/context-generator.js +3 -3
- package/src/lib/generators/recap-generator.js +32 -12
- package/src/lib/hooks/hook-executor.js +169 -0
- package/src/lib/hooks/stop-hook-executor.js +286 -0
- package/src/lib/hops/hop-composer.js +221 -0
- package/src/lib/threads/thread-coordinator.js +238 -0
- package/src/lib/threads/thread-manager.js +317 -0
- package/src/lib/tracking/artifact-trail.js +202 -0
- package/src/lib/trust/trust-manager.js +269 -0
- package/src/lib/validators/design-system/design-system-validator.js +2 -2
- package/src/lib/validators/validation-runner.js +14 -30
- package/src/utils/hooks-installer.js +69 -0
- package/stacks/blazor-azure/.morph/config/agents.json +72 -3
- package/stacks/nextjs-supabase/.morph/config/agents.json +3 -3
- package/docs/llm-interaction-config.md +0 -735
- package/docs/v3.0/EXECUTION-FLOW.md +0 -1304
- package/src/commands/utils/migrate-state.js +0 -158
- package/src/commands/utils/upgrade.js +0 -346
- package/src/lib/validators/architecture-validator.js +0 -60
- package/src/lib/validators/content-validator.js +0 -164
- package/src/lib/validators/package-validator.js +0 -61
- package/src/lib/validators/ui-contrast-validator.js +0 -44
- package/stacks/blazor-azure/.claude/commands/morph-apply.md +0 -221
- package/stacks/blazor-azure/.claude/commands/morph-archive.md +0 -79
- package/stacks/blazor-azure/.claude/commands/morph-deploy.md +0 -529
- package/stacks/blazor-azure/.claude/commands/morph-infra.md +0 -209
- package/stacks/blazor-azure/.claude/commands/morph-preflight.md +0 -227
- package/stacks/blazor-azure/.claude/commands/morph-proposal.md +0 -122
- package/stacks/blazor-azure/.claude/commands/morph-status.md +0 -86
- package/stacks/blazor-azure/.claude/commands/morph-troubleshoot.md +0 -122
- package/stacks/blazor-azure/.claude/skills/level-0-meta/README.md +0 -7
- package/stacks/blazor-azure/.claude/skills/level-0-meta/code-review.md +0 -226
- package/stacks/blazor-azure/.claude/skills/level-0-meta/morph-checklist.md +0 -117
- package/stacks/blazor-azure/.claude/skills/level-0-meta/simulation-checklist.md +0 -77
- package/stacks/blazor-azure/.claude/skills/level-1-workflows/README.md +0 -7
- package/stacks/blazor-azure/.claude/skills/level-1-workflows/morph-replicate.md +0 -213
- package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-clarify.md +0 -131
- package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-design.md +0 -213
- package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-setup.md +0 -106
- package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-tasks.md +0 -164
- package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-uiux.md +0 -169
- package/stacks/blazor-azure/.claude/skills/level-2-domains/README.md +0 -14
- package/stacks/blazor-azure/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -192
- package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -197
- package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/prompt-engineer.md +0 -189
- package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/seo-growth-hacker.md +0 -320
- package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -156
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/api-designer.md +0 -59
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -77
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -58
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -126
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -45
- package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -210
- package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -154
- package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -191
- package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -142
- package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +0 -699
- package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -126
- package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -131
- package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -119
- package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -130
- package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -142
- package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -108
- package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/hangfire-orchestrator.md +0 -64
- package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/resend-email.md +0 -119
- package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -235
- package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -126
- package/stacks/blazor-azure/.claude/skills/level-3-technologies/README.md +0 -7
- package/stacks/blazor-azure/.claude/skills/level-4-patterns/README.md +0 -7
- package/stacks/blazor-azure/.morph/archive/.gitkeep +0 -25
- package/stacks/blazor-azure/.morph/features/.gitkeep +0 -25
- package/stacks/blazor-azure/.morph/schemas/agent.schema.json +0 -296
- package/stacks/blazor-azure/.morph/schemas/tasks.schema.json +0 -220
- package/stacks/blazor-azure/.morph/specs/.gitkeep +0 -20
- package/stacks/blazor-azure/.morph/test-infra/example.bicep +0 -59
- package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +0 -221
- package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +0 -79
- package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +0 -529
- package/stacks/nextjs-supabase/.claude/commands/morph-infra.md +0 -209
- package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +0 -227
- package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +0 -122
- package/stacks/nextjs-supabase/.claude/commands/morph-status.md +0 -86
- package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +0 -122
- package/stacks/nextjs-supabase/.claude/settings.local.json +0 -6
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +0 -244
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +0 -335
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +0 -189
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +0 -50
- /package/docs/{v3.0 → next-generation}/ANALYSIS.md +0 -0
- /package/docs/{v3.0 → next-generation}/ARCHITECTURE.md +0 -0
- /package/docs/{v3.0 → next-generation}/FEATURES.md +0 -0
- /package/docs/{v3.0 → next-generation}/README.md +0 -0
- /package/docs/{v3.0 → next-generation}/ROADMAP.md +0 -0
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# MORPH Clarify - FASE 3
|
|
2
|
-
|
|
3
|
-
> INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
|
|
4
|
-
|
|
5
|
-
Identifique ambiguidades na especificação e faça perguntas de clarificação para garantir que todos os edge cases estão cobertos.
|
|
6
|
-
|
|
7
|
-
## Pré-requisitos
|
|
8
|
-
|
|
9
|
-
- [ ] FASE 2 (Design) concluída
|
|
10
|
-
- [ ] `spec.md` aprovado pelo usuário
|
|
11
|
-
- [ ] `contracts.cs` definidos
|
|
12
|
-
|
|
13
|
-
## Workflow
|
|
14
|
-
|
|
15
|
-
### Passo 1: Analisar Spec
|
|
16
|
-
|
|
17
|
-
Leia `.morph/project/outputs/{feature}/spec.md` em detalhes e identifique:
|
|
18
|
-
|
|
19
|
-
#### 1.1. Ambiguidades
|
|
20
|
-
- Requisitos vagos ou genéricos
|
|
21
|
-
- Termos sem definição clara
|
|
22
|
-
- Comportamentos não especificados
|
|
23
|
-
|
|
24
|
-
#### 1.2. Edge Cases Não Documentados
|
|
25
|
-
- O que acontece se...?
|
|
26
|
-
- Como lidar com entradas inválidas?
|
|
27
|
-
- Comportamento em caso de erro?
|
|
28
|
-
- Estados intermediários (loading, empty)
|
|
29
|
-
|
|
30
|
-
#### 1.3. Requisitos Conflitantes
|
|
31
|
-
- Duas funcionalidades que parecem incompatíveis
|
|
32
|
-
- Prioridades não claras (o que vem primeiro?)
|
|
33
|
-
|
|
34
|
-
#### 1.4. Dados Faltantes
|
|
35
|
-
- Validações de negócio não especificadas
|
|
36
|
-
- Limites e constraints (tamanhos, quantidades)
|
|
37
|
-
- Formatos de dados (datas, moedas, etc.)
|
|
38
|
-
|
|
39
|
-
### Passo 2: Gerar Perguntas de Clarificação
|
|
40
|
-
|
|
41
|
-
Com base na análise, gere **3-7 perguntas** focadas e específicas:
|
|
42
|
-
|
|
43
|
-
**Formato de pergunta:**
|
|
44
|
-
```markdown
|
|
45
|
-
### Q{N}: {Categoria} - {Título}
|
|
46
|
-
|
|
47
|
-
**Context:** {Por que esta pergunta é importante}
|
|
48
|
-
|
|
49
|
-
**Question:** {Pergunta clara e objetiva}
|
|
50
|
-
|
|
51
|
-
**Options (if applicable):**
|
|
52
|
-
- A) {Opção 1}
|
|
53
|
-
- B) {Opção 2}
|
|
54
|
-
- C) {Deixar em aberto/usuário decidir}
|
|
55
|
-
|
|
56
|
-
**Impact:** {Como a resposta afeta a implementação}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Passo 3: Categorizar Perguntas
|
|
60
|
-
|
|
61
|
-
Organize perguntas por categoria:
|
|
62
|
-
|
|
63
|
-
| Categoria | Descrição | Exemplos |
|
|
64
|
-
|-----------|-----------|----------|
|
|
65
|
-
| **Validação** | Regras de negócio, constraints | Limites de tamanho, formatos aceitos |
|
|
66
|
-
| **Comportamento** | O que acontece quando... | Error handling, estados vazios |
|
|
67
|
-
| **Prioridade** | O que é must-have vs nice-to-have | MVP vs futuras iterações |
|
|
68
|
-
| **Integração** | Como interage com sistemas externos | APIs, webhooks, formato de dados |
|
|
69
|
-
| **Performance** | Requisitos de velocidade/volume | Quantos registros? Tempo de resposta? |
|
|
70
|
-
| **UX** | Experiência do usuário | Feedback visual, mensagens de erro |
|
|
71
|
-
|
|
72
|
-
### Passo 4: Apresentar Perguntas ao Usuário
|
|
73
|
-
|
|
74
|
-
Liste todas as perguntas de forma clara e estruturada.
|
|
75
|
-
|
|
76
|
-
**IMPORTANTE:** Não prossiga para próxima fase até ter respostas!
|
|
77
|
-
|
|
78
|
-
### Passo 5: Atualizar `spec.md` com Respostas
|
|
79
|
-
|
|
80
|
-
Após receber respostas do usuário, atualize o spec com:
|
|
81
|
-
|
|
82
|
-
1. **Seção de Clarificações** no início do spec:
|
|
83
|
-
```markdown
|
|
84
|
-
## Clarifications (FASE 3)
|
|
85
|
-
|
|
86
|
-
### Q1: {Título}
|
|
87
|
-
**Answer:** {Resposta do usuário}
|
|
88
|
-
**Date:** {YYYY-MM-DD}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
2. **Atualizar seções relevantes** com detalhes adicionados
|
|
92
|
-
|
|
93
|
-
### Passo 6: Validar Edge Cases
|
|
94
|
-
|
|
95
|
-
Documente no spec como lidar com cada edge case identificado:
|
|
96
|
-
|
|
97
|
-
```markdown
|
|
98
|
-
## Edge Cases
|
|
99
|
-
|
|
100
|
-
### EC001: {Nome do Edge Case}
|
|
101
|
-
**Scenario:** {Quando acontece}
|
|
102
|
-
**Expected Behavior:** {Como o sistema deve reagir}
|
|
103
|
-
**Implementation Notes:** {Dicas para implementação}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Passo 7: Atualizar State
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
npx morph-spec state set {feature-name} phase clarify
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Outputs Gerados/Atualizados
|
|
113
|
-
|
|
114
|
-
- `.morph/project/outputs/{feature}/spec.md` - Atualizado com:
|
|
115
|
-
- Seção "Clarifications" com perguntas e respostas
|
|
116
|
-
- Edge cases documentados
|
|
117
|
-
- Requisitos mais específicos
|
|
118
|
-
|
|
119
|
-
## Critérios de Avanço
|
|
120
|
-
|
|
121
|
-
- [x] Perguntas de clarificação identificadas (3-7)
|
|
122
|
-
- [x] Perguntas apresentadas ao usuário
|
|
123
|
-
- [x] Respostas do usuário recebidas
|
|
124
|
-
- [x] `spec.md` atualizado com clarificações
|
|
125
|
-
- [x] Edge cases documentados
|
|
126
|
-
- [x] State atualizado
|
|
127
|
-
- [x] Nenhuma ambiguidade crítica remanescente
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
Continuar automaticamente para FASE 4 (Tasks) após clarificações resolvidas.
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
# MORPH Design - FASE 2
|
|
2
|
-
|
|
3
|
-
> INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
|
|
4
|
-
|
|
5
|
-
Expanda a proposta em especificação técnica completa, contracts, decisões arquiteturais e estimativa de custos.
|
|
6
|
-
|
|
7
|
-
## Pré-requisitos
|
|
8
|
-
|
|
9
|
-
- [ ] FASE 1 (Setup) concluída
|
|
10
|
-
- [ ] FASE 1.5 (UI/UX) concluída OU pulada (se não houver front-end)
|
|
11
|
-
- [ ] Proposta aprovada pelo usuário
|
|
12
|
-
|
|
13
|
-
## Workflow
|
|
14
|
-
|
|
15
|
-
### Passo 1: Carregar Contexto e Standards
|
|
16
|
-
|
|
17
|
-
**Obtenha feature state e standards context:**
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npx morph-spec state get {feature-name}
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Parse o JSON para obter `activeAgents`, então use standards context (já carregado na FASE 1):
|
|
24
|
-
- Standards relevantes estão em `standardsSummary` do detect-agents
|
|
25
|
-
- Padrões já incluem project overrides + inferred learnings
|
|
26
|
-
|
|
27
|
-
**Leia outputs existentes:**
|
|
28
|
-
1. `.morph/project/outputs/{feature}/proposal.md` - Proposta inicial
|
|
29
|
-
2. `.morph/project/outputs/{feature}/ui-*.md` - UI/UX specs (se existirem)
|
|
30
|
-
|
|
31
|
-
**Use standards context ao gerar spec.md:**
|
|
32
|
-
- Architecture standards → guiam Technical Architecture section
|
|
33
|
-
- Coding standards → definem contracts.cs patterns
|
|
34
|
-
- Azure standards → determinam Infrastructure Requirements
|
|
35
|
-
|
|
36
|
-
### Passo 2: Gerar `spec.md`
|
|
37
|
-
|
|
38
|
-
Crie `.morph/project/outputs/{feature}/spec.md` com:
|
|
39
|
-
|
|
40
|
-
#### 2.1. Overview
|
|
41
|
-
- **Objetivo:** Resumo de 1-2 parágrafos
|
|
42
|
-
- **Usuários afetados:** Quem vai usar?
|
|
43
|
-
- **Problema resolvido:** Qual dor/necessidade?
|
|
44
|
-
|
|
45
|
-
#### 2.2. Functional Requirements
|
|
46
|
-
Lista detalhada de requisitos funcionais:
|
|
47
|
-
```markdown
|
|
48
|
-
### FR001: {Requisito}
|
|
49
|
-
**Description:** {O que deve fazer}
|
|
50
|
-
**Acceptance Criteria:**
|
|
51
|
-
- [ ] Critério 1
|
|
52
|
-
- [ ] Critério 2
|
|
53
|
-
**Priority:** High/Medium/Low
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
#### 2.3. Non-Functional Requirements
|
|
57
|
-
- Performance (tempos de resposta esperados)
|
|
58
|
-
- Segurança (autenticação, autorização)
|
|
59
|
-
- Escalabilidade (volume de dados/usuários)
|
|
60
|
-
- Disponibilidade (uptime esperado)
|
|
61
|
-
|
|
62
|
-
#### 2.4. Technical Architecture
|
|
63
|
-
- **Camadas:** (Presentation, Application, Domain, Infrastructure)
|
|
64
|
-
- **Patterns:** (Repository, CQRS, DI, etc.)
|
|
65
|
-
- **Dependências:** Bibliotecas/serviços externos necessários
|
|
66
|
-
|
|
67
|
-
#### 2.5. Data Model
|
|
68
|
-
- Entities principais
|
|
69
|
-
- Relacionamentos (1:1, 1:N, N:N)
|
|
70
|
-
- Campos obrigatórios vs opcionais
|
|
71
|
-
- Validações de negócio
|
|
72
|
-
|
|
73
|
-
#### 2.6. Infrastructure Requirements
|
|
74
|
-
Se houver recursos Azure:
|
|
75
|
-
- Banco de dados (Azure SQL, Cosmos DB)
|
|
76
|
-
- Storage (Blob Storage)
|
|
77
|
-
- Compute (Container Apps, App Service)
|
|
78
|
-
- Monitoring (App Insights)
|
|
79
|
-
|
|
80
|
-
**SEMPRE usar Bicep para infra!**
|
|
81
|
-
|
|
82
|
-
### Passo 3: Gerar `contracts.cs`
|
|
83
|
-
|
|
84
|
-
Crie `.morph/project/outputs/{feature}/contracts.cs` com:
|
|
85
|
-
|
|
86
|
-
```csharp
|
|
87
|
-
// Interfaces, DTOs, Enums, Value Objects
|
|
88
|
-
|
|
89
|
-
namespace {ProjectName}.Features.{FeatureName};
|
|
90
|
-
|
|
91
|
-
// DTOs (Data Transfer Objects)
|
|
92
|
-
public record {Feature}CreateDto(
|
|
93
|
-
string Name,
|
|
94
|
-
DateTime Date
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
public record {Feature}ResponseDto(
|
|
98
|
-
Guid Id,
|
|
99
|
-
string Name,
|
|
100
|
-
DateTime Date,
|
|
101
|
-
DateTime CreatedAt
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
// Interfaces
|
|
105
|
-
public interface I{Feature}Service
|
|
106
|
-
{
|
|
107
|
-
Task<{Feature}ResponseDto> CreateAsync({Feature}CreateDto dto, CancellationToken ct);
|
|
108
|
-
Task<{Feature}ResponseDto?> GetByIdAsync(Guid id, CancellationToken ct);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// Enums
|
|
112
|
-
public enum {Feature}Status
|
|
113
|
-
{
|
|
114
|
-
Pending,
|
|
115
|
-
Active,
|
|
116
|
-
Completed
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
**Padrões obrigatórios:**
|
|
121
|
-
- Records para DTOs (immutable)
|
|
122
|
-
- Interfaces para serviços
|
|
123
|
-
- CancellationToken em métodos async
|
|
124
|
-
- Nullable reference types habilitados
|
|
125
|
-
|
|
126
|
-
### Passo 4: Iniciar `decisions.md`
|
|
127
|
-
|
|
128
|
-
Crie `.morph/project/outputs/{feature}/decisions.md` com ADRs relevantes:
|
|
129
|
-
|
|
130
|
-
```markdown
|
|
131
|
-
# Architectural Decision Records (ADRs)
|
|
132
|
-
|
|
133
|
-
## ADR-001: {Decisão Arquitetural}
|
|
134
|
-
|
|
135
|
-
**Status:** Proposed/Accepted/Deprecated
|
|
136
|
-
|
|
137
|
-
**Context:**
|
|
138
|
-
{Por que esta decisão foi necessária}
|
|
139
|
-
|
|
140
|
-
**Decision:**
|
|
141
|
-
{O que foi decidido}
|
|
142
|
-
|
|
143
|
-
**Consequences:**
|
|
144
|
-
**Pros:**
|
|
145
|
-
- Pro 1
|
|
146
|
-
|
|
147
|
-
**Cons:**
|
|
148
|
-
- Con 1
|
|
149
|
-
|
|
150
|
-
**Alternatives Considered:**
|
|
151
|
-
- Alternativa 1: {Por que foi rejeitada}
|
|
152
|
-
|
|
153
|
-
**Date:** {YYYY-MM-DD}
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**ADRs obrigatórios:**
|
|
157
|
-
- Escolha de biblioteca UI (se FASE 1.5 executou)
|
|
158
|
-
- Padrões arquiteturais (CQRS, Repository, etc.)
|
|
159
|
-
- Recursos Azure (se houver infra)
|
|
160
|
-
- Integrações externas (APIs, webhooks, etc.)
|
|
161
|
-
|
|
162
|
-
### Passo 5: Estimar Custos
|
|
163
|
-
|
|
164
|
-
Se houver recursos Azure na spec:
|
|
165
|
-
|
|
166
|
-
**Limites configuráveis** (em config.json):
|
|
167
|
-
- `costs.limits.freeTierOnly`: $0 (apenas free tier)
|
|
168
|
-
- `costs.limits.withApproval`: $10 (requer confirmação do usuário)
|
|
169
|
-
- `costs.limits.requiresADR`: $10 (requer ADR documentado)
|
|
170
|
-
|
|
171
|
-
Documente custos em `decisions.md` e atualize state:
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
npx morph-spec state set {feature-name} costs.estimated {X.XX}
|
|
175
|
-
npx morph-spec state set {feature-name} costs.approved {true/false}
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### Passo 6: Atualizar State
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
npx morph-spec state set {feature-name} phase design
|
|
182
|
-
npx morph-spec state mark-output {feature-name} spec
|
|
183
|
-
npx morph-spec state mark-output {feature-name} contracts
|
|
184
|
-
npx morph-spec state mark-output {feature-name} decisions
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## Outputs Gerados
|
|
188
|
-
|
|
189
|
-
- `.morph/project/outputs/{feature}/spec.md` - Especificação técnica completa
|
|
190
|
-
- `.morph/project/outputs/{feature}/contracts.cs` - Interfaces, DTOs, Enums
|
|
191
|
-
- `.morph/project/outputs/{feature}/decisions.md` - ADRs (novo ou atualizado)
|
|
192
|
-
- State atualizado com custos estimados
|
|
193
|
-
|
|
194
|
-
## PAUSA OBRIGATÓRIA
|
|
195
|
-
|
|
196
|
-
Apresente ao usuário 3 ações sugeridas:
|
|
197
|
-
|
|
198
|
-
1. **Aprovar design e continuar para clarificação**
|
|
199
|
-
2. **Ajustar escopo/complexidade** - Revisar spec.md
|
|
200
|
-
3. **Modificar contracts** - Ajustar interfaces/DTOs
|
|
201
|
-
|
|
202
|
-
## Critérios de Avanço
|
|
203
|
-
|
|
204
|
-
- [x] `spec.md` completo com todos os requisitos
|
|
205
|
-
- [x] `contracts.cs` com interfaces e DTOs
|
|
206
|
-
- [x] `decisions.md` com ADRs relevantes
|
|
207
|
-
- [x] Custos estimados e documentados (se houver infra)
|
|
208
|
-
- [x] State atualizado
|
|
209
|
-
- [x] Usuário aprovou design
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
Continuar automaticamente para FASE 3 (Clarify) após aprovação.
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
# MORPH Setup - FASE 1
|
|
2
|
-
|
|
3
|
-
> INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
|
|
4
|
-
|
|
5
|
-
Inicialize o contexto e prepare o ambiente para uma feature aprovada.
|
|
6
|
-
|
|
7
|
-
## Pré-requisitos
|
|
8
|
-
|
|
9
|
-
- [ ] Feature tem `proposal.md` criado (FASE 0 concluída)
|
|
10
|
-
- [ ] Proposal foi aprovado pelo usuário
|
|
11
|
-
- [ ] Agentes foram detectados e registrados no state
|
|
12
|
-
|
|
13
|
-
## Workflow
|
|
14
|
-
|
|
15
|
-
### Passo 1: Verificar State
|
|
16
|
-
|
|
17
|
-
Confirme que a feature existe no state:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npx morph-spec state get {feature-name}
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Se não existir, volte para FASE 0 (proposal).
|
|
24
|
-
|
|
25
|
-
### Passo 2: Carregar Contexto e Standards Automaticamente
|
|
26
|
-
|
|
27
|
-
**Use detect-agents --json para obter standards context:**
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npx morph-spec detect-agents --json "{feature description from proposal}"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
O output JSON contém `standardsSummary` com todos os standards relevantes para cada agente ativo:
|
|
34
|
-
|
|
35
|
-
```json
|
|
36
|
-
{
|
|
37
|
-
"standardsSummary": {
|
|
38
|
-
"blazor-builder": {
|
|
39
|
-
"standards": ["blazor-lifecycle", "blazor-state", "coding", ...],
|
|
40
|
-
"fullContent": "# blazor-lifecycle\n\n...", // Full standards text
|
|
41
|
-
"count": 10
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**Standards resolution order** (automático):
|
|
48
|
-
1. `.morph/project/standards/*.md` (project overrides - highest priority)
|
|
49
|
-
2. `.morph/standards/*.md` (AI Agent Framework, Azure)
|
|
50
|
-
3. `framework/standards/*.md` (Blazor, CSS, .NET)
|
|
51
|
-
4. `.morph/project/standards/inferred.md` (always loaded if exists)
|
|
52
|
-
|
|
53
|
-
**Contexto geral** (leia manualmente):
|
|
54
|
-
- `.morph/project/context/README.md` - Overview do projeto
|
|
55
|
-
- `.morph/config.json` - Configurações
|
|
56
|
-
|
|
57
|
-
### Passo 3: Confirmar Stack
|
|
58
|
-
|
|
59
|
-
Baseado no proposal e contexto, confirme:
|
|
60
|
-
- Stack tecnológica (Blazor Server, Next.js, etc.)
|
|
61
|
-
- Padrões arquiteturais aplicáveis
|
|
62
|
-
- Componentes reutilizáveis existentes
|
|
63
|
-
|
|
64
|
-
### Passo 4: Listar Agentes Ativos
|
|
65
|
-
|
|
66
|
-
Mostre os agentes detectados no proposal:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
npx morph-spec state get {feature-name}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Parse o JSON e liste os `activeAgents` com seus emojis e responsabilidades (consulte `.morph/config/agents.json`).
|
|
73
|
-
|
|
74
|
-
### Passo 5: Atualizar State
|
|
75
|
-
|
|
76
|
-
Marque a feature como na fase SETUP:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
npx morph-spec state set {feature-name} phase setup
|
|
80
|
-
npx morph-spec state set {feature-name} status in_progress
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Outputs
|
|
84
|
-
|
|
85
|
-
**Apresente ao usuário:**
|
|
86
|
-
|
|
87
|
-
1. **Contexto carregado**:
|
|
88
|
-
- Nome do projeto
|
|
89
|
-
- Stack confirmado
|
|
90
|
-
- Standards aplicáveis
|
|
91
|
-
|
|
92
|
-
2. **Agentes ativos**:
|
|
93
|
-
- Lista de agentes com emojis
|
|
94
|
-
- Responsabilidades de cada um
|
|
95
|
-
|
|
96
|
-
## Critérios de Avanço
|
|
97
|
-
|
|
98
|
-
- [x] Contexto do projeto carregado
|
|
99
|
-
- [x] Standards identificados (framework + project)
|
|
100
|
-
- [x] Stack confirmado
|
|
101
|
-
- [x] Agentes listados
|
|
102
|
-
- [x] State atualizado para phase: setup
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
Continuar automaticamente para próxima fase (UI/UX se detectado, ou Design).
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
# MORPH Tasks - FASE 4
|
|
2
|
-
|
|
3
|
-
> INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
|
|
4
|
-
|
|
5
|
-
Quebre a especificação em tasks executáveis, defina ordem de execução e estabeleça checkpoints.
|
|
6
|
-
|
|
7
|
-
## Pré-requisitos
|
|
8
|
-
|
|
9
|
-
- [ ] FASE 3 (Clarify) concluída
|
|
10
|
-
- [ ] `spec.md` atualizado com clarificações
|
|
11
|
-
- [ ] Todos os edge cases documentados
|
|
12
|
-
|
|
13
|
-
## Workflow
|
|
14
|
-
|
|
15
|
-
### Passo 1: Analisar Spec
|
|
16
|
-
|
|
17
|
-
Leia `.morph/project/outputs/{feature}/spec.md` e identifique:
|
|
18
|
-
|
|
19
|
-
1. **Requisitos funcionais** (FR001, FR002, ...)
|
|
20
|
-
2. **Componentes técnicos** (Entities, Services, Controllers, Pages)
|
|
21
|
-
3. **Infraestrutura** (Bicep, migrations, configs)
|
|
22
|
-
4. **Testes** (Unit tests, integration tests)
|
|
23
|
-
|
|
24
|
-
### Passo 2: Quebrar em Tasks
|
|
25
|
-
|
|
26
|
-
Crie tasks no formato **T{NNN}** seguindo ordem lógica de implementação.
|
|
27
|
-
|
|
28
|
-
#### 2.1. Estrutura de Task
|
|
29
|
-
|
|
30
|
-
```json
|
|
31
|
-
{
|
|
32
|
-
"id": "T001",
|
|
33
|
-
"title": "Criar Entity {Nome}",
|
|
34
|
-
"description": "Implementar entity {Nome} com propriedades X, Y, Z seguindo padrões EF Core",
|
|
35
|
-
"category": "domain",
|
|
36
|
-
"dependencies": [],
|
|
37
|
-
"estimatedMinutes": 30,
|
|
38
|
-
"status": "pending",
|
|
39
|
-
"specSections": ["## Domain Model", "## Business Rules"],
|
|
40
|
-
"contractInterfaces": ["I{Nome}Repository"],
|
|
41
|
-
"files": [
|
|
42
|
-
"Domain/Entities/{Nome}.cs",
|
|
43
|
-
"Infrastructure/Data/Configurations/{Nome}Configuration.cs"
|
|
44
|
-
]
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
#### 2.2. Categorias de Tasks
|
|
49
|
-
|
|
50
|
-
| Categoria | Descrição | Exemplos |
|
|
51
|
-
|-----------|-----------|----------|
|
|
52
|
-
| **domain** | Entities, Value Objects, Enums | Entity, DomainException |
|
|
53
|
-
| **application** | Services, DTOs, Interfaces | Service, Validator, Mapper |
|
|
54
|
-
| **infrastructure** | DbContext, Repositories, External APIs | EF Config, Repository impl |
|
|
55
|
-
| **presentation** | Controllers, Pages, Components | API endpoint, Blazor page |
|
|
56
|
-
| **tests** | Unit tests, Integration tests | Service tests, API tests |
|
|
57
|
-
| **infra** | Bicep, Migrations, Scripts | Azure resources, DB migration |
|
|
58
|
-
| **docs** | README, API docs, Swagger | OpenAPI spec, README update |
|
|
59
|
-
|
|
60
|
-
#### 2.3. Ordem de Implementação
|
|
61
|
-
|
|
62
|
-
**Bottom-up approach:**
|
|
63
|
-
```
|
|
64
|
-
1. Domain (Entities, Enums, Value Objects)
|
|
65
|
-
↓
|
|
66
|
-
2. Infrastructure (Repositories, DbContext configs)
|
|
67
|
-
↓
|
|
68
|
-
3. Application (Services, DTOs, Business logic)
|
|
69
|
-
↓
|
|
70
|
-
4. Presentation (Controllers, Pages, Components)
|
|
71
|
-
↓
|
|
72
|
-
5. Tests (Unit → Integration)
|
|
73
|
-
↓
|
|
74
|
-
6. Infra (Bicep, Migrations, Deploy scripts)
|
|
75
|
-
↓
|
|
76
|
-
7. Docs (README, Swagger, Comments)
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Passo 3: Definir Dependências
|
|
80
|
-
|
|
81
|
-
Para cada task, especifique dependências:
|
|
82
|
-
|
|
83
|
-
```json
|
|
84
|
-
{
|
|
85
|
-
"id": "T005",
|
|
86
|
-
"title": "Criar {Nome}Service",
|
|
87
|
-
"dependencies": ["T001", "T002"],
|
|
88
|
-
"status": "pending"
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**Regra:** Task só pode ser executada quando todas as dependências estão `completed`.
|
|
93
|
-
|
|
94
|
-
### Passo 4: Estabelecer Checkpoints
|
|
95
|
-
|
|
96
|
-
Defina checkpoints a cada **3 tasks** ou **marcos significativos**:
|
|
97
|
-
|
|
98
|
-
```json
|
|
99
|
-
{
|
|
100
|
-
"id": "CHECKPOINT_001",
|
|
101
|
-
"title": "Domain Layer Completo",
|
|
102
|
-
"afterTasks": ["T001", "T002", "T003"],
|
|
103
|
-
"validations": [
|
|
104
|
-
"Todas as entities criadas",
|
|
105
|
-
"Migrations aplicadas",
|
|
106
|
-
"Testes de domain passando"
|
|
107
|
-
]
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Passo 5: Estimar Esforço
|
|
112
|
-
|
|
113
|
-
Para cada task, estime tempo em minutos:
|
|
114
|
-
|
|
115
|
-
| Complexidade | Tempo Estimado |
|
|
116
|
-
|--------------|----------------|
|
|
117
|
-
| Trivial (CRUD básico) | 15-30 min |
|
|
118
|
-
| Simples (Service, Controller) | 30-60 min |
|
|
119
|
-
| Média (Business logic, validações) | 60-120 min |
|
|
120
|
-
| Complexa (Integrações, AI) | 120-240 min |
|
|
121
|
-
|
|
122
|
-
### Passo 6: Gerar `tasks.json`
|
|
123
|
-
|
|
124
|
-
Crie `.morph/project/outputs/{feature}/tasks.json` com a estrutura completa de tasks, checkpoints e estimativas.
|
|
125
|
-
|
|
126
|
-
### Passo 7: Incluir Tasks de IaC (se necessário)
|
|
127
|
-
|
|
128
|
-
Se houver recursos Azure, adicionar tasks de Bicep e migrations.
|
|
129
|
-
|
|
130
|
-
### Passo 8: Atualizar State
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npx morph-spec state set {feature-name} phase tasks
|
|
134
|
-
npx morph-spec state set {feature-name} tasks.total {N}
|
|
135
|
-
npx morph-spec state mark-output {feature-name} tasks
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## Outputs Gerados
|
|
139
|
-
|
|
140
|
-
- `.morph/project/outputs/{feature}/tasks.json` - Breakdown completo de tasks
|
|
141
|
-
|
|
142
|
-
## PAUSA OBRIGATÓRIA
|
|
143
|
-
|
|
144
|
-
Apresente ao usuário 3 ações sugeridas:
|
|
145
|
-
|
|
146
|
-
1. **Aprovar breakdown e iniciar implementação**
|
|
147
|
-
2. **Repriorizar tasks** - Mudar ordem de execução
|
|
148
|
-
3. **Adicionar/remover tasks** - Ajustar escopo
|
|
149
|
-
|
|
150
|
-
## Critérios de Avanço
|
|
151
|
-
|
|
152
|
-
- [x] `tasks.json` criado com todas as tasks
|
|
153
|
-
- [x] Tasks categorizadas corretamente
|
|
154
|
-
- [x] Dependências mapeadas
|
|
155
|
-
- [x] Checkpoints definidos (a cada 3 tasks)
|
|
156
|
-
- [x] Esforço estimado por task
|
|
157
|
-
- [x] Ordem de execução clara
|
|
158
|
-
- [x] Tasks de IaC incluídas (se aplicável)
|
|
159
|
-
- [x] State atualizado com total de tasks
|
|
160
|
-
- [x] Usuário aprovou breakdown
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
Após aprovação: "Planejamento completo! Execute `/morph-apply {feature}` para iniciar implementação."
|