@maestro-ai/cli 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -54
- package/content/guides/fases-mapeamento.md +35 -0
- package/content/guides/multi-ide.md +32 -0
- package/content/guides/playbook-orquestrador.md +45 -0
- package/content/rules/quality-gates.md +43 -0
- package/content/rules/validation-rules.md +97 -0
- package/content/templates/estado-template.json +73 -0
- package/content/workflows/avancar-fase.md +84 -0
- package/content/workflows/brainstorm.md +22 -8
- package/content/workflows/continuar-fase.md +64 -0
- package/content/workflows/{mcp-debug.md → corrigir-bug.md} +30 -6
- package/content/workflows/iniciar-projeto.md +59 -0
- package/content/workflows/maestro.md +77 -0
- package/content/workflows/{mcp-feature.md → nova-feature.md} +81 -28
- package/content/workflows/{mcp-refactor.md → refatorar-codigo.md} +33 -10
- package/content/workflows/status-projeto.md +54 -0
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.js +86 -74
- package/dist/index.js +94 -5
- package/package.json +10 -4
- package/content/workflows/README-MCP.md +0 -363
- package/content/workflows/debug.md +0 -103
- package/content/workflows/mcp-next.md +0 -388
- package/content/workflows/mcp-start.md +0 -304
- package/content/workflows/mcp-status.md +0 -400
- package/content/workflows/preview.md +0 -81
- package/content/workflows/status.md +0 -86
- /package/content/workflows/{create.md → create-app.md} +0 -0
- /package/content/workflows/{enhance.md → melhorar-feature.md} +0 -0
- /package/content/workflows/{test.md → testar.md} +0 -0
- /package/content/workflows/{ui-ux-pro-max.md → ux-avancado.md} +0 -0
- /package/content/workflows/{mcp-gate.md → validar-gate.md} +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @maestro-ai/cli
|
|
2
2
|
|
|
3
|
-
CLI para inicializar projetos
|
|
3
|
+
CLI para inicializar projetos **Maestro File System** - Orquestrador chat-first com workflows inteligentes.
|
|
4
4
|
|
|
5
5
|
## 🚀 Uso Rápido
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ CLI para inicializar projetos com Maestro - Desenvolvimento assistido por IA.
|
|
|
8
8
|
npx @maestro-ai/cli
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Só isso! O comando injeta automaticamente todos os arquivos na pasta atual.
|
|
11
|
+
Só isso! O comando injeta automaticamente todos os arquivos do Maestro na pasta atual.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -18,25 +18,19 @@ Só isso! O comando injeta automaticamente todos os arquivos na pasta atual.
|
|
|
18
18
|
|-------|-----------|
|
|
19
19
|
| `--force` | Sobrescreve arquivos existentes |
|
|
20
20
|
| `--minimal` | Instala apenas workflows + rules |
|
|
21
|
-
| `--ide <ide>` | IDE alvo: `
|
|
21
|
+
| `--ide <ide>` | IDE alvo: `windsurf`, `cursor`, `antigravity`, `all` (default: `windsurf`) |
|
|
22
22
|
|
|
23
23
|
### Exemplos
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
# Instalação completa (
|
|
26
|
+
# Instalação completa (Windsurf - padrão)
|
|
27
27
|
npx @maestro-ai/cli
|
|
28
28
|
|
|
29
|
-
# Apenas para Gemini/Antigravity
|
|
30
|
-
npx @maestro-ai/cli --ide gemini
|
|
31
|
-
|
|
32
29
|
# Apenas para Cursor
|
|
33
30
|
npx @maestro-ai/cli --ide cursor
|
|
34
31
|
|
|
35
|
-
# Apenas para
|
|
36
|
-
npx @maestro-ai/cli --ide
|
|
37
|
-
|
|
38
|
-
# Apenas para Windsurf
|
|
39
|
-
npx @maestro-ai/cli --ide windsurf
|
|
32
|
+
# Apenas para Antigravity/Gemini
|
|
33
|
+
npx @maestro-ai/cli --ide antigravity
|
|
40
34
|
|
|
41
35
|
# Sobrescrever arquivos existentes
|
|
42
36
|
npx @maestro-ai/cli --force
|
|
@@ -55,45 +49,70 @@ projeto/
|
|
|
55
49
|
│ ├── config.json # Configuração do projeto
|
|
56
50
|
│ ├── history/ # Histórico de conversas
|
|
57
51
|
│ └── content/ # Especialistas, templates, guides, prompts
|
|
58
|
-
├── .
|
|
59
|
-
│ ├── skills/ # Skills
|
|
60
|
-
│ └── workflows/ # Workflows
|
|
61
|
-
└──
|
|
52
|
+
├── .windsurf/
|
|
53
|
+
│ ├── skills/ # Skills especializadas
|
|
54
|
+
│ └── workflows/ # Workflows inteligentes
|
|
55
|
+
└── .windsurfrules # Regras da IA para Windsurf
|
|
62
56
|
```
|
|
63
57
|
|
|
64
|
-
### Arquivos
|
|
58
|
+
### Arquivos por IDE
|
|
65
59
|
|
|
66
|
-
| IDE |
|
|
67
|
-
|
|
68
|
-
|
|
|
69
|
-
| Cursor | `.cursorrules` |
|
|
70
|
-
|
|
|
71
|
-
| Windsurf | `.windsurfrules` |
|
|
60
|
+
| IDE | Estrutura Gerada |
|
|
61
|
+
|-----|------------------|
|
|
62
|
+
| Windsurf | `.windsurf/workflows/` + `.windsurf/skills/` + `.windsurfrules` |
|
|
63
|
+
| Cursor | `.cursor/commands/` + `.cursor/skills/` + `.cursorrules` |
|
|
64
|
+
| Antigravity | `.agent/workflows/` + `.agent/skills/` + `.gemini/GEMINI.md` |
|
|
72
65
|
|
|
73
66
|
---
|
|
74
67
|
|
|
75
|
-
##
|
|
68
|
+
## 🎯 Fluxo de Trabalho
|
|
69
|
+
|
|
70
|
+
O Maestro File System opera 100% localmente com workflows chat-first:
|
|
76
71
|
|
|
77
72
|
```mermaid
|
|
78
73
|
graph LR
|
|
79
|
-
A[
|
|
80
|
-
B -->|
|
|
81
|
-
B -->|
|
|
82
|
-
|
|
83
|
-
C --> F[
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
D --> I[Arquivo da IDE escolhida]
|
|
74
|
+
A[/maestro] --> B{Estado do projeto}
|
|
75
|
+
B -->|Novo| C[/iniciar-projeto]
|
|
76
|
+
B -->|Em andamento| D[/continuar-fase]
|
|
77
|
+
B -->|Pronto| E[/avancar-fase]
|
|
78
|
+
C --> F[Fase 1: Produto]
|
|
79
|
+
D --> G[Retoma fase atual]
|
|
80
|
+
E --> H[Próxima fase]
|
|
87
81
|
```
|
|
88
82
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
### Comandos Principais
|
|
84
|
+
|
|
85
|
+
| Comando | Descrição |
|
|
86
|
+
|---------|-----------|
|
|
87
|
+
| `/maestro` | Workflow universal inteligente que detecta estado |
|
|
88
|
+
| `/iniciar-projeto` | Inicia novo projeto com classificação automática |
|
|
89
|
+
| `/continuar-fase` | Retoma a fase atual do ponto exato |
|
|
90
|
+
| `/avancar-fase` | Valida quality gates e avança para próxima fase |
|
|
91
|
+
| `/status-projeto` | Mostra progresso completo e métricas |
|
|
92
|
+
|
|
93
|
+
### Workflows de Desenvolvimento
|
|
94
|
+
|
|
95
|
+
| Comando | Descrição |
|
|
96
|
+
|---------|-----------|
|
|
97
|
+
| `/nova-feature` | Adiciona funcionalidades (fluxo 6 fases) |
|
|
98
|
+
| `/corrigir-bug` | Debugging estruturado (fluxo 4 fases) |
|
|
99
|
+
| `/refatorar-codigo` | Refatoração segura com testes |
|
|
100
|
+
| `/brainstorm` | Exploração estruturada de ideias |
|
|
101
|
+
| `/deploy` | Deploy em produção com checklist |
|
|
102
|
+
| `/testar` | Geração e execução de testes |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 🔄 Como Funciona
|
|
107
|
+
|
|
108
|
+
1. **Estado Centralizado**: `.maestro/estado.json` mantém toda a evolução do projeto
|
|
109
|
+
2. **Workflows Inteligentes**: Cada workflow carrega especialistas, prompts e templates adequados
|
|
110
|
+
3. **Quality Gates**: Validações automáticas entre fases com regras específicas
|
|
111
|
+
4. **Multi-IDE**: Suporte nativo para Windsurf, Cursor e Antigravity
|
|
93
112
|
|
|
94
113
|
---
|
|
95
114
|
|
|
96
|
-
## 📋 Comandos
|
|
115
|
+
## 📋 Comandos CLI
|
|
97
116
|
|
|
98
117
|
### `init` (padrão)
|
|
99
118
|
|
|
@@ -114,24 +133,35 @@ npx @maestro-ai/cli update --force # Sobrescreve arquivos modificados
|
|
|
114
133
|
|
|
115
134
|
---
|
|
116
135
|
|
|
117
|
-
##
|
|
118
|
-
|
|
119
|
-
Configure o MCP na sua IDE:
|
|
120
|
-
|
|
121
|
-
```json
|
|
122
|
-
{
|
|
123
|
-
"mcpServers": {
|
|
124
|
-
"maestro": {
|
|
125
|
-
"serverUrl": "https://maestro.deluna.dev.br/mcp"
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
```
|
|
136
|
+
## 🎨 Exemplo de Uso
|
|
130
137
|
|
|
131
|
-
|
|
138
|
+
```bash
|
|
139
|
+
# 1. Inicializar projeto
|
|
140
|
+
npx @maestro-ai/cli
|
|
132
141
|
|
|
133
|
-
|
|
134
|
-
|
|
142
|
+
# 2. No Windsurf/Cursor, iniciar projeto
|
|
143
|
+
/maestro
|
|
144
|
+
# → Detecta projeto não inicializado
|
|
145
|
+
# → Sugere /iniciar-projeto
|
|
146
|
+
|
|
147
|
+
# 3. Iniciar projeto
|
|
148
|
+
/iniciar-projeto
|
|
149
|
+
# → Coleta informações
|
|
150
|
+
# → Classifica complexidade
|
|
151
|
+
# → Cria estado inicial
|
|
152
|
+
# → Prepara Fase 1
|
|
153
|
+
|
|
154
|
+
# 4. Desenvolver
|
|
155
|
+
/continuar-fase
|
|
156
|
+
# → Carrega especialista de Gestão de Produto
|
|
157
|
+
# → Abre templates PRD.md
|
|
158
|
+
# → Orienta preenchimento
|
|
159
|
+
|
|
160
|
+
# 5. Avançar quando pronto
|
|
161
|
+
/avancar-fase
|
|
162
|
+
# → Valida quality gate
|
|
163
|
+
# → Atualiza estado
|
|
164
|
+
# → Prepara Fase 2
|
|
135
165
|
```
|
|
136
166
|
|
|
137
167
|
---
|
|
@@ -142,7 +172,7 @@ Depois inicie um projeto:
|
|
|
142
172
|
cd packages/cli
|
|
143
173
|
npm install
|
|
144
174
|
npm run build
|
|
145
|
-
npm run dev -- init --ide
|
|
175
|
+
npm run dev -- init --ide windsurf # Testar localmente
|
|
146
176
|
```
|
|
147
177
|
|
|
148
178
|
---
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Mapeamento fase ↔ especialista, prompts, templates e skills
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 📚 Mapa de Fases MCP → Recursos do Conteúdo
|
|
6
|
+
|
|
7
|
+
| Fase | Especialista | Prompt principal | Template(s) | Skills/Notas |
|
|
8
|
+
|------|--------------|------------------|-------------|--------------|
|
|
9
|
+
| 1. Produto | specialists/Especialista em Gestão de Produto.md | prompts/produto.md | templates/PRD.md | Skills: Produto, Discovery; carregar PRD existente antes de iniciar. |
|
|
10
|
+
| 2. Requisitos | specialists/Especialista em Engenharia de Requisitos com IA.md | prompts/requisitos.md | templates/requisitos.md, templates/matriz-rastreabilidade.md | Skills: Requirements, QA; referenciar MVP da fase 1. |
|
|
11
|
+
| 3. UX Design | specialists/Especialista em UX Design.md | prompts/ux.md | templates/design-doc.md, templates/mapa-navegacao.md | Skills: UX, Acessibilidade. |
|
|
12
|
+
| 4. Modelo de Domínio | specialists/Especialista em Modelagem e Arquitetura de Domínio com IA.md | prompts/modelo-dominio.md | templates/modelo-dominio.md | Skills: Architecture, Domain-driven. |
|
|
13
|
+
| 5. Banco de Dados | specialists/Especialista em Banco de Dados.md | prompts/banco.md | templates/design-banco.md | Skills: Database, Performance. |
|
|
14
|
+
| 6. Arquitetura | specialists/Especialista em Arquitetura de Software.md | prompts/arquitetura.md | templates/arquitetura.md, templates/adr.md | Skills: Architecture, Security. |
|
|
15
|
+
| 7. Segurança | specialists/Especialista em Segurança da Informação.md | prompts/seguranca.md | templates/checklist-seguranca.md | Skills: Security. |
|
|
16
|
+
| 8. Testes | specialists/Especialista em Análise de Testes.md | prompts/testes.md | templates/plano-testes.md, templates/criterios-aceite.md | Skills: Testing. |
|
|
17
|
+
| 9. Backlog | specialists/Especialista em Plano de Execução com IA.md | prompts/backlog.md | templates/backlog.md, templates/historia-usuario.md | Skills: Agile/Execution. |
|
|
18
|
+
| 10. Contrato API | specialists/Especialista em Contrato de API.md | prompts/api.md | templates/contrato-api.md | Skills: API, Integration. |
|
|
19
|
+
| 11. Frontend | specialists/Especialista em Desenvolvimento Frontend.md | prompts/frontend.md | templates/historia-frontend.md | Skills: Frontend, UI. |
|
|
20
|
+
| 12. Backend | specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md | prompts/backend.md | templates/historia-backend.md | Skills: Backend, Clean Code. |
|
|
21
|
+
| 13. Integração/Deploy | specialists/Especialista em DevOps e Infraestrutura.md | prompts/devops.md | templates/arquitetura.md, templates/slo-sli.md | Skills: DevOps, Observabilidade. |
|
|
22
|
+
|
|
23
|
+
> Para fluxos simples (7 fases), considere apenas as linhas 1–7. Para fluxos complexos (17 fases), acrescente especialistas adicionais conforme `src/src/flows/types.ts` (Arquitetura Avançada, Performance, Observabilidade, etc.).
|
|
24
|
+
|
|
25
|
+
## Como usar nos workflows
|
|
26
|
+
|
|
27
|
+
1. **/continuar-fase**: após identificar a fase, abra o especialista e prompt correspondentes (ver tabela). Mencione explicitamente na resposta quais templates serão atualizados.
|
|
28
|
+
2. **/avancar-fase**: use `entregavel_esperado` da tabela para verificar arquivos e validações antes de avançar.
|
|
29
|
+
3. **/status-projeto**: liste os especialistas por fase concluída/parcial para ajudar o usuário a saber quem está ativo.
|
|
30
|
+
|
|
31
|
+
## Manutenção
|
|
32
|
+
|
|
33
|
+
- Sempre que um novo especialista ou template for adicionado, atualize esta tabela.
|
|
34
|
+
- Se um prompt for renomeado, ajuste o nome aqui e nos workflows.
|
|
35
|
+
- Skills podem ser expandidas mencionando diretórios específicos em `content/skills/`.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Como usar o Maestro File System em Windsurf, Cursor e Antigravity
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 🌐 Guia Multi-IDE
|
|
6
|
+
|
|
7
|
+
## Windsurf
|
|
8
|
+
- Workflows: `.windsurf/workflows/*.md`
|
|
9
|
+
- Skills: `.windsurf/skills/`
|
|
10
|
+
- Regras: `.windsurfrules`
|
|
11
|
+
- Comandos: usar `/maestro`, `/iniciar-projeto`, `/continuar-fase`, `/avancar-fase`, `/status-projeto` direto no chat.
|
|
12
|
+
- Dica: Windsurf expande markdown automaticamente; cite caminhos completos (ex.: `content/guides/fases-mapeamento.md`).
|
|
13
|
+
|
|
14
|
+
## Cursor
|
|
15
|
+
- Comandos: `.cursor/commands/*.md` (mesmo nome dos workflows)
|
|
16
|
+
- Skills: `.cursor/skills/`
|
|
17
|
+
- Regras: `.cursorrules`
|
|
18
|
+
- Para iniciar, digite `/maestro` no chat do Cursor; os demais comandos funcionam igual.
|
|
19
|
+
- Dica: quando o comando pedir arquivos, use `cursor://` + caminho relativo para abrir.
|
|
20
|
+
|
|
21
|
+
## Antigravity / Gemini
|
|
22
|
+
- Workflows: `.agent/workflows/`
|
|
23
|
+
- Skills: `.agent/skills/`
|
|
24
|
+
- Regras: `.gemini/GEMINI.md` (contém header com trigger `always_on`)
|
|
25
|
+
- Comandos: igual às outras IDEs; recomenda-se iniciar com `/maestro`.
|
|
26
|
+
- Dica: especifique claramente quando precisar ler/escrever arquivos para evitar passos extras do agente.
|
|
27
|
+
|
|
28
|
+
## Boas práticas gerais
|
|
29
|
+
1. Sempre mantenha `.maestro/estado.json` versionado (ou com backup) para permitir retomada entre IDEs.
|
|
30
|
+
2. Após atualizar conteúdo do CLI, rode novamente `npx @maestro-ai/cli --force --ide <alvo>` conforme necessidade, lembrando que cada IDE possui diretórios próprios.
|
|
31
|
+
3. Ao criar novos workflows/rules, copie-os para cada IDE ou reexecute o CLI.
|
|
32
|
+
4. Consulte este guia sempre que precisar lembrar onde vivem os arquivos instalados.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Playbook de governança do orquestrador Maestro
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 📘 Playbook do Orquestrador Inteligente
|
|
6
|
+
|
|
7
|
+
## 1. Fluxo padrão
|
|
8
|
+
1. `/maestro` → Detecta estado, valida fluxos MCP e aponta próxima ação.
|
|
9
|
+
2. `/iniciar-projeto` → Classifica, gera estado e prepara fase 1.
|
|
10
|
+
3. `/continuar-fase` → Carrega especialista/prompt/templates e retoma do ponto exato.
|
|
11
|
+
4. `/avancar-fase` → Executa quality gates e avança com registro em histórico.
|
|
12
|
+
5. `/status-projeto` → Consolida progresso, scores, bloqueios e recomendações.
|
|
13
|
+
|
|
14
|
+
## 2. Governança do estado (`.maestro/estado.json`)
|
|
15
|
+
- Sempre ler antes de executar qualquer workflow.
|
|
16
|
+
- Campos principais: `projeto`, `faseAtual`, `fases`, `qualityGates`, `historico`, `metrica`.
|
|
17
|
+
- Atualizações recomendadas:
|
|
18
|
+
- `/continuar-fase`: atualizar `fases[N].artefatos`, notas, progresso, `metrica.ultimoComando`.
|
|
19
|
+
- `/avancar-fase`: marcar `fases[N].status = 'concluida'`, preencher `dataConclusao`, incrementar `faseAtual`, registrar `historico`.
|
|
20
|
+
- `/status-projeto`: apenas leitura; reporte divergências.
|
|
21
|
+
|
|
22
|
+
## 3. Métricas e registro
|
|
23
|
+
- `metrica.fasesConcluidas`: incrementado ao avançar.
|
|
24
|
+
- `metrica.tempoPorFase`: registrar timestamps quando iniciar/concluir fase.
|
|
25
|
+
- `metrica.scores`: manter média para relatórios (usado em `/status-projeto`).
|
|
26
|
+
- `metrica.ultimoComando`: útil para retomar contexto entre sessões.
|
|
27
|
+
|
|
28
|
+
## 4. Troubleshooting
|
|
29
|
+
- **Estado ausente**: `/maestro` deve sugerir `/iniciar-projeto`.
|
|
30
|
+
- **Divergência com fluxo MCP**: `/maestro` lista fases divergentes; ajustar manualmente ou reinicializar.
|
|
31
|
+
- **Quality gate falhou**: `/avancar-fase` explica motivo e indica arquivos a revisar; refaça `/continuar-fase` com foco no ponto pendente.
|
|
32
|
+
- **Mudança de IDE**: consultar `guides/multi-ide.md` para garantir que workflows/skills estejam no local correto.
|
|
33
|
+
|
|
34
|
+
## 5. Checklist antes de concluir uma fase
|
|
35
|
+
- Entregável existe e segue template.
|
|
36
|
+
- Regras específicas cumpridas (`rules/validation-rules.md`).
|
|
37
|
+
- Quality gate da transição validado (`rules/quality-gates.md`).
|
|
38
|
+
- Estado atualizado (status, score, notas, timestamps).
|
|
39
|
+
- Evento registrado em `historico` com resumo e próximos passos.
|
|
40
|
+
|
|
41
|
+
## 6. Próximos passos sugeridos
|
|
42
|
+
- Automatizar atualização do estado dentro dos workflows (scripts mentais).
|
|
43
|
+
- Criar smoke tests para cada comando nas IDEs suportadas.
|
|
44
|
+
- Estender métricas para dashboards ou relatórios automáticos.
|
|
45
|
+
- Documentar casos de uso avançados (ex.: projetos multi-tier, Stitch opcional).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# 🔐 Quality Gates por Transição
|
|
2
|
+
|
|
3
|
+
| De → Para | Checklist Obrigatória | Validadores sugeridos |
|
|
4
|
+
|-----------|----------------------|------------------------|
|
|
5
|
+
| Produto → Requisitos | MVP 100% coberto nos requisitos; personas refletidas | `validarCoberturaMVP(PRD, requisitos)` |
|
|
6
|
+
| Requisitos → UX Design | Fluxos/jornadas definidos; critérios de aceite aprovados | `analisarFluxosUsuarios(requisitos)` |
|
|
7
|
+
| UX Design → Prototipagem (Stitch) | Wireframes completos; estilo aprovado | `validarWireframes(designDoc)` |
|
|
8
|
+
| Prototipagem → Arquitetura | Feedback aplicado; requisitos atualizados | `verificarConsistencia(designDoc, requisitos)` |
|
|
9
|
+
| Arquitetura → Modelo de Domínio | Stack confirmada; contexto alinhado | `compararModelagem(arquitetura, modeloDominio)` |
|
|
10
|
+
| Modelo de Domínio → Banco de Dados | Entidades → tabelas; regras documentadas | `validarModeloDominio(modeloDominio, designBanco)` |
|
|
11
|
+
| Banco → Segurança | Dados sensíveis catalogados; políticas definidas | `analisarSensibilidade(designBanco)` |
|
|
12
|
+
| Segurança → Testes | Controles críticos definidos; riscos registrados | `validarChecklistSeguranca(checklist)` |
|
|
13
|
+
| Testes → Backlog | Estratégia de testes aprovada; cobertura planejada | `verificarPlanoTestes(plano)` |
|
|
14
|
+
| Backlog → Contrato API | Stories/radar de integrações aprovados | `compararBacklogContrato(backlog, openapi)` |
|
|
15
|
+
| Contrato API → Frontend | OpenAPI completo; mocks disponíveis | `validarContrato(openapi)` |
|
|
16
|
+
| Frontend → Backend | Componentes integrados a mocks; testes passando | `executarSuite('frontend-tests')` |
|
|
17
|
+
| Backend → Integração/Deploy | Testes unitários/integração/contrato passando | `executarSuite('backend-tests')` |
|
|
18
|
+
| Integração → Observabilidade (fluxo complexo) | Pipelines verdes; monitoração básica configurada | `validarPipeline(ciCdConfig)` |
|
|
19
|
+
| Observabilidade → Performance | Dashboards + alertas definidos | `validarObservabilidade(config)` |
|
|
20
|
+
| Performance → Deploy Final | Testes de carga concluídos; tuning aplicado | `executarLoadTest(plan)` |
|
|
21
|
+
|
|
22
|
+
## Exemplo de validação cruzada (Produto → Requisitos)
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
function validarCoberturaMVP(prdPath, requisitosPath) {
|
|
26
|
+
const prd = lerArquivo(prdPath);
|
|
27
|
+
const requisitos = lerArquivo(requisitosPath);
|
|
28
|
+
const mvpItems = extrairItens('MVP', prd);
|
|
29
|
+
const faltantes = mvpItems.filter(item => !requisitos.includes(item));
|
|
30
|
+
|
|
31
|
+
return {
|
|
32
|
+
percentual: ((mvpItems.length - faltantes.length) / mvpItems.length) * 100,
|
|
33
|
+
faltantes
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Uso no /avancar-fase
|
|
39
|
+
|
|
40
|
+
1. Determine a transição atual (fase `N` → `N+1`).
|
|
41
|
+
2. Carregue o checklist correspondente na tabela acima.
|
|
42
|
+
3. Execute as funções auxiliares indicadas (ou use lógica equivalente).
|
|
43
|
+
4. Só permita avanço quando **todos** os itens estiverem `true` e o score da fase atingir o mínimo definido em `validation-rules.md`.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# 🛡️ Regras de Validação por Fase
|
|
2
|
+
|
|
3
|
+
## Fase 1 - Produto
|
|
4
|
+
- Problema central definido
|
|
5
|
+
- Público-alvo/personas
|
|
6
|
+
- MVP listado e priorizado
|
|
7
|
+
- Métricas de sucesso (North Star + KPIs)
|
|
8
|
+
- Score mínimo: **75/100**
|
|
9
|
+
|
|
10
|
+
## Fase 2 - Requisitos
|
|
11
|
+
- Cobertura 100% do MVP
|
|
12
|
+
- Requisitos funcionais em formato testável
|
|
13
|
+
- Requisitos não funcionais (performance, segurança)
|
|
14
|
+
- Critérios de aceite (Given-When-Then)
|
|
15
|
+
- Score mínimo: **70/100**
|
|
16
|
+
|
|
17
|
+
## Fase 3 - UX Design
|
|
18
|
+
- Wireframes para todas as telas principais
|
|
19
|
+
- Jornadas/fluxos de usuário descritos
|
|
20
|
+
- Navegação coerente
|
|
21
|
+
- Consistência visual e de componentes
|
|
22
|
+
- Score mínimo: **70/100**
|
|
23
|
+
|
|
24
|
+
## Fase 4 - Prototipagem / Stitch (quando aplicável)
|
|
25
|
+
- Protótipo navegável validado com stakeholders
|
|
26
|
+
- Feedback registrado e aplicado
|
|
27
|
+
- Export pronto para handoff ou Stitch output salvo
|
|
28
|
+
- Score mínimo: **75/100**
|
|
29
|
+
|
|
30
|
+
## Fase 5 - Arquitetura
|
|
31
|
+
- Stack definida
|
|
32
|
+
- Diagrama C4 nível 2 ou 3
|
|
33
|
+
- ADRs para decisões críticas
|
|
34
|
+
- Requisitos não funcionais endereçados
|
|
35
|
+
- Score mínimo: **80/100**
|
|
36
|
+
|
|
37
|
+
## Fase 6 - Modelo de Domínio
|
|
38
|
+
- Entidades e relacionamentos definidos
|
|
39
|
+
- Regras de negócio documentadas
|
|
40
|
+
- Eventos e agregados identificados (quando necessário)
|
|
41
|
+
- Score mínimo: **75/100**
|
|
42
|
+
|
|
43
|
+
## Fase 7 - Banco de Dados
|
|
44
|
+
- Modelo relacional ou NoSQL definido
|
|
45
|
+
- Índices/partições planejados
|
|
46
|
+
- Estratégia de migração descrita
|
|
47
|
+
- Score mínimo: **75/100**
|
|
48
|
+
|
|
49
|
+
## Fase 8 - Segurança
|
|
50
|
+
- OWASP Top 10 avaliado
|
|
51
|
+
- Autenticação/autorização descritas
|
|
52
|
+
- Dados sensíveis mapeados e protegidos
|
|
53
|
+
- Score mínimo: **80/100**
|
|
54
|
+
|
|
55
|
+
## Fase 9 - Testes
|
|
56
|
+
- Estratégia (pirâmide) definida
|
|
57
|
+
- Casos de teste críticos descritos
|
|
58
|
+
- Ferramentas e ambientes definidos
|
|
59
|
+
- Score mínimo: **75/100**
|
|
60
|
+
|
|
61
|
+
## Fase 10 - Backlog
|
|
62
|
+
- Épicos e features priorizados
|
|
63
|
+
- Histórias com critérios de aceite claros
|
|
64
|
+
- Dependências mapeadas
|
|
65
|
+
- Score mínimo: **75/100**
|
|
66
|
+
|
|
67
|
+
## Fase 11 - Contrato de API
|
|
68
|
+
- Esquema OpenAPI completo
|
|
69
|
+
- Versionamento/documentação definidas
|
|
70
|
+
- Mocks ou client SDK disponíveis
|
|
71
|
+
- Score mínimo: **80/100**
|
|
72
|
+
|
|
73
|
+
## Fase 12 - Frontend
|
|
74
|
+
- Componentes implementados conforme design
|
|
75
|
+
- Testes de componente ou integração passando
|
|
76
|
+
- Responsividade e acessibilidade verificadas
|
|
77
|
+
- Score mínimo: **80/100**
|
|
78
|
+
|
|
79
|
+
## Fase 13 - Backend
|
|
80
|
+
- Endpoints implementados conforme contrato
|
|
81
|
+
- Testes unitários e de integração passando
|
|
82
|
+
- Migrações e jobs documentados
|
|
83
|
+
- Score mínimo: **80/100**
|
|
84
|
+
|
|
85
|
+
## Fase 14 - Performance / Observabilidade (fluxo complexo)
|
|
86
|
+
- Métricas e alertas configurados
|
|
87
|
+
- Estratégia de cache/performance definida
|
|
88
|
+
- Testes de carga planejados
|
|
89
|
+
- Score mínimo: **80/100**
|
|
90
|
+
|
|
91
|
+
## Fase 15 - Integração / Deploy
|
|
92
|
+
- Pipeline CI/CD verde
|
|
93
|
+
- Testes E2E executados
|
|
94
|
+
- Plano de rollback/documentação de release
|
|
95
|
+
- Score mínimo: **85/100**
|
|
96
|
+
|
|
97
|
+
> Use essas regras para preencher `fase.validacoes` e justificar o `score` atribuído no estado.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"projeto": {
|
|
3
|
+
"nome": "[Nome do Projeto]",
|
|
4
|
+
"descricao": "[Resumo do projeto]",
|
|
5
|
+
"tipo": "[poc|script|internal|product]",
|
|
6
|
+
"complexidade": "[simples|medio|complexo]",
|
|
7
|
+
"tier": "[essencial|base|avancado]",
|
|
8
|
+
"usarStitch": false,
|
|
9
|
+
"criadoEm": "[ISO datetime]",
|
|
10
|
+
"atualizadoEm": "[ISO datetime]"
|
|
11
|
+
},
|
|
12
|
+
"faseAtual": {
|
|
13
|
+
"numero": 1,
|
|
14
|
+
"nome": "Produto",
|
|
15
|
+
"status": "in_progress",
|
|
16
|
+
"especialista": "Gestão de Produto",
|
|
17
|
+
"score": null,
|
|
18
|
+
"scoreMinimo": 75,
|
|
19
|
+
"iniciadoEm": "[ISO datetime]",
|
|
20
|
+
"ultimoUpdate": "[ISO datetime]"
|
|
21
|
+
},
|
|
22
|
+
"fases": {
|
|
23
|
+
"1": {
|
|
24
|
+
"numero": 1,
|
|
25
|
+
"nome": "Produto",
|
|
26
|
+
"especialista": "Gestão de Produto",
|
|
27
|
+
"status": "pending",
|
|
28
|
+
"score": null,
|
|
29
|
+
"scoreMinimo": 75,
|
|
30
|
+
"artefatos": ["docs/01-produto/PRD.md"],
|
|
31
|
+
"validacoes": {
|
|
32
|
+
"problema_definido": false,
|
|
33
|
+
"personas": false,
|
|
34
|
+
"mvp_listado": false,
|
|
35
|
+
"metricas": false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"2": {
|
|
39
|
+
"numero": 2,
|
|
40
|
+
"nome": "Requisitos",
|
|
41
|
+
"especialista": "Engenharia de Requisitos",
|
|
42
|
+
"status": "pending",
|
|
43
|
+
"score": null,
|
|
44
|
+
"scoreMinimo": 70,
|
|
45
|
+
"artefatos": ["docs/02-requisitos/requisitos.md"],
|
|
46
|
+
"validacoes": {
|
|
47
|
+
"requisitos_funcionais": false,
|
|
48
|
+
"requisitos_nao_funcionais": false,
|
|
49
|
+
"criterios_aceite": false,
|
|
50
|
+
"cobertura_mvp": false
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"qualityGates": {
|
|
55
|
+
"1_para_2": {
|
|
56
|
+
"validado": false,
|
|
57
|
+
"score": null,
|
|
58
|
+
"checks": ["mvp_100_coberto"]
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"historico": [
|
|
62
|
+
{
|
|
63
|
+
"acao": "projeto_iniciado",
|
|
64
|
+
"detalhes": "Projeto criado a partir do template",
|
|
65
|
+
"timestamp": "[ISO datetime]"
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"metrica": {
|
|
69
|
+
"fasesConcluidas": 0,
|
|
70
|
+
"ultimoComando": null,
|
|
71
|
+
"tempoPorFase": {}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Valida fase atual com quality gates e prepara a próxima fase
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 🔄 Workflow de Avanço - /avancar-fase
|
|
6
|
+
|
|
7
|
+
## 1. Ler estado e fase atual
|
|
8
|
+
|
|
9
|
+
```javascript
|
|
10
|
+
const estado = lerJson('.maestro/estado.json');
|
|
11
|
+
const faseAtual = estado.fases[estado.faseAtual];
|
|
12
|
+
if (!faseAtual) throw new Error('Fase atual não existe');
|
|
13
|
+
|
|
14
|
+
function salvarEstado(state) {
|
|
15
|
+
escreverJson('.maestro/estado.json', state, { spaces: 2 });
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 2. Checklist obrigatório
|
|
20
|
+
|
|
21
|
+
- `faseAtual.status` deve ser `concluida`.
|
|
22
|
+
- `faseAtual.score >= faseAtual.scoreMinimo`.
|
|
23
|
+
- Todos os itens de `faseAtual.validacoes` precisam estar `true`.
|
|
24
|
+
- Verificar bloqueios pendentes.
|
|
25
|
+
|
|
26
|
+
Se algum critério falhar, listar o motivo e encerrar sem avançar.
|
|
27
|
+
|
|
28
|
+
## 3. Validação cruzada
|
|
29
|
+
|
|
30
|
+
Use regras específicas da transição (ver `content/rules/quality-gates.md`). Exemplo:
|
|
31
|
+
|
|
32
|
+
```javascript
|
|
33
|
+
if (estado.faseAtual === 1) {
|
|
34
|
+
const prd = lerArquivo('docs/01-produto/PRD.md');
|
|
35
|
+
const requisitos = lerArquivo('docs/02-requisitos/requisitos.md');
|
|
36
|
+
const cobertura = validarCoberturaMVP(prd, requisitos);
|
|
37
|
+
if (cobertura.percentual < 100) throw new Error('MVP não está 100% coberto nos requisitos');
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 4. Determinar próxima fase
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
const PROGRESSAO = {
|
|
45
|
+
1: { numero: 2, nome: 'Requisitos', especialista: 'Engenharia de Requisitos', entregavel: 'docs/02-requisitos/requisitos.md' },
|
|
46
|
+
2: { numero: 3, nome: 'UX Design', especialista: 'UX Designer', entregavel: 'docs/03-ux/design-doc.md' },
|
|
47
|
+
// ... completar até o tier máximo
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const proxima = PROGRESSAO[estado.faseAtual];
|
|
51
|
+
if (!proxima) return 'Projeto já está na última fase';
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Depois de obter `proxima`, consulte `content/guides/fases-mapeamento.md` para descobrir:
|
|
55
|
+
|
|
56
|
+
- **Especialista** em `content/specialists/` que atuará na próxima fase
|
|
57
|
+
- **Prompt principal** em `content/prompts/`
|
|
58
|
+
- **Templates** que devem ser carregados/atualizados
|
|
59
|
+
- **Skills** sugeridas em `content/skills/`
|
|
60
|
+
|
|
61
|
+
Inclua essas referências na resposta final para orientar o usuário sobre o contexto que será carregado quando `/continuar-fase` for executado.
|
|
62
|
+
|
|
63
|
+
## 5. Atualizar estado
|
|
64
|
+
|
|
65
|
+
- Marcar `faseAtual.dataConclusao`.
|
|
66
|
+
- Incrementar `estado.faseAtual` para `proxima.numero`.
|
|
67
|
+
- Preparar entrada vazia para a próxima fase (`status: 'in_progress'`).
|
|
68
|
+
- Registrar evento no histórico (`fase_avancada`).
|
|
69
|
+
- Atualizar `estado.metrica.fasesConcluidas` e `estado.metrica.ultimoComando = '/avancar-fase'`.
|
|
70
|
+
- Chamar `salvarEstado(estado)` após todas as alterações.
|
|
71
|
+
|
|
72
|
+
## 6. Mensagem de saída
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
✅ **Fase {faseAtual.numero} - {faseAtual.nome} concluída!**
|
|
76
|
+
📊 Score: {faseAtual.score}/{faseAtual.scoreMinimo}
|
|
77
|
+
🔍 Validações: {lista de validações confirmadas}
|
|
78
|
+
|
|
79
|
+
🎯 **Próxima fase:** {proxima.nome}
|
|
80
|
+
👤 Especialista: {proxima.especialista}
|
|
81
|
+
📁 Arquivo inicial: {proxima.entregavel}
|
|
82
|
+
|
|
83
|
+
Execute `/continuar-fase` para começar imediatamente.
|
|
84
|
+
```
|