@maestro-ai/cli 1.0.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 +161 -29
- 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/GEMINI.md +841 -0
- package/content/rules/RULES.md +835 -0
- package/content/rules/adapters/copilot.md +10 -0
- package/content/rules/adapters/cursor.md +10 -0
- package/content/rules/adapters/gemini.md +13 -0
- package/content/rules/adapters/windsurf.md +10 -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 -1
- package/dist/commands/init.js +99 -55
- package/dist/index.js +100 -3
- 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
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
system: maestro
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
description: Adapter for Gemini/Antigravity IDE
|
|
6
|
+
target_path: .gemini/GEMINI.md
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Gemini Adapter
|
|
10
|
+
|
|
11
|
+
Este adaptador adiciona o frontmatter específico para Gemini/Antigravity.
|
|
12
|
+
|
|
13
|
+
O conteúdo de `RULES.md` será inserido automaticamente pelo CLI.
|
|
@@ -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
|
+
```
|
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Exploração estruturada de ideias, integrada ao estado do Maestro.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# /brainstorm -
|
|
5
|
+
# /brainstorm - Exploração Estruturada de Ideias
|
|
6
6
|
|
|
7
7
|
$ARGUMENTS
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## Pré-requisitos e conexão com o Maestro
|
|
12
|
+
|
|
13
|
+
1. Execute `/maestro` para validar o estado atual e detectar fase/artefatos focos.
|
|
14
|
+
2. Carregue `.maestro/estado.json` para contextualizar o brainstorming com o problema/fase em andamento:
|
|
15
|
+
```javascript
|
|
16
|
+
const estado = lerJson('.maestro/estado.json');
|
|
17
|
+
const faseAtual = estado.fases?.[estado.faseAtual];
|
|
18
|
+
```
|
|
19
|
+
3. Registre no histórico (`estado.historico`) o evento `brainstorm_executado`, indicando o tópico e os caminhos escolhidos. Chame `salvarEstado(estado)` após concluir.
|
|
20
|
+
4. Use `content/guides/fases-mapeamento.md` para puxar especialistas/prompts relacionados (ex.: fase 1 → Gestão de Produto, fase 3 → UX).
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
11
24
|
## Purpose
|
|
12
25
|
|
|
13
|
-
This command activates BRAINSTORM mode for structured idea exploration. Use when you need to explore options before committing to an implementation.
|
|
26
|
+
This command activates BRAINSTORM mode for structured idea exploration. Use when you need to explore options before committing to an implementation and quer salvar as conclusões no estado do Maestro.
|
|
14
27
|
|
|
15
28
|
---
|
|
16
29
|
|
|
@@ -22,6 +35,7 @@ When `/brainstorm` is triggered:
|
|
|
22
35
|
- What problem are we solving?
|
|
23
36
|
- Who is the user?
|
|
24
37
|
- What constraints exist?
|
|
38
|
+
- Relacione com `faseAtual.nome` e `faseAtual.especialista` para manter alinhamento.
|
|
25
39
|
|
|
26
40
|
2. **Generate options**
|
|
27
41
|
- Provide at least 3 different approaches
|
|
@@ -34,7 +48,7 @@ When `/brainstorm` is triggered:
|
|
|
34
48
|
|
|
35
49
|
---
|
|
36
50
|
|
|
37
|
-
## Output Format
|
|
51
|
+
## Output Format (registrar em `docs/brainstorm/<slug>.md` e anexar ao estado)
|
|
38
52
|
|
|
39
53
|
```markdown
|
|
40
54
|
## 🧠 Brainstorm: [Topic]
|
|
@@ -97,10 +111,10 @@ What direction would you like to explore?
|
|
|
97
111
|
## Examples
|
|
98
112
|
|
|
99
113
|
```
|
|
100
|
-
/brainstorm authentication system
|
|
101
|
-
/brainstorm
|
|
102
|
-
/brainstorm
|
|
103
|
-
/brainstorm caching strategy
|
|
114
|
+
/brainstorm authentication system (fase 2 – requisitos)
|
|
115
|
+
/brainstorm redesign para dashboard (fase 3 – UX)
|
|
116
|
+
/brainstorm integrações com ERP (fase 6 – Integração)
|
|
117
|
+
/brainstorm caching strategy para escala
|
|
104
118
|
```
|
|
105
119
|
|
|
106
120
|
---
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Retoma a fase atual exatamente do ponto onde foi interrompida
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 🔄 Workflow de Continuação - /continuar-fase
|
|
6
|
+
|
|
7
|
+
## 1. Ler estado 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 encontrada');
|
|
13
|
+
|
|
14
|
+
function salvarEstado(state) {
|
|
15
|
+
escreverJson('.maestro/estado.json', state, { spaces: 2 });
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 2. Identificar último artefato
|
|
20
|
+
|
|
21
|
+
- Use `faseAtual.artefatos` para encontrar o arquivo principal.
|
|
22
|
+
- Se vazio, referencie o template padrão da fase (ex.: `docs/01-produto/PRD.md`).
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
const arquivo = faseAtual.artefatos?.slice(-1)[0] || faseAtual.entregavel;
|
|
26
|
+
const analise = analisarArquivo(arquivo);
|
|
27
|
+
/* analise = {
|
|
28
|
+
secoesPreenchidas,
|
|
29
|
+
secoesFaltantes,
|
|
30
|
+
percentualCompleto,
|
|
31
|
+
proximaSecao
|
|
32
|
+
} */
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 3. Mensagem de retomada
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
📋 **Retomando Fase {estado.faseAtual}/{estado.totalFases} - {faseAtual.nome}**
|
|
39
|
+
- Especialista: {faseAtual.especialista}
|
|
40
|
+
- Artefato: {arquivo}
|
|
41
|
+
- Progresso: {analise.percentualCompleto}%
|
|
42
|
+
- Última ação: {analise.ultimaSecao}
|
|
43
|
+
- Próxima tarefa: {analise.proximaSecao}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 4. Carregar contexto
|
|
47
|
+
|
|
48
|
+
1. Consulte `content/guides/fases-mapeamento.md` para mapear fase → especialista/prompt/template/skills.
|
|
49
|
+
2. Abra o especialista e prompt correspondentes. Ex.: fase 2 → `specialists/Especialista em Engenharia de Requisitos com IA.md` + `prompts/requisitos.md`.
|
|
50
|
+
3. Carregue os templates associados (ver tabela) e compare com o artefato atual para detectar seções faltantes.
|
|
51
|
+
4. Liste explicitamente na resposta quais arquivos serão atualizados (ex.: `docs/02-requisitos/requisitos.md`, `templates/matriz-rastreabilidade.md`).
|
|
52
|
+
|
|
53
|
+
## 5. Retomar execução
|
|
54
|
+
|
|
55
|
+
- Perguntar ao usuário se deseja continuar exatamente da próxima seção, revisar algo ou mudar o foco.
|
|
56
|
+
- Ao continuar, seguir checklist da fase (regras em `content/rules/validation-rules.md`).
|
|
57
|
+
|
|
58
|
+
## 6. Atualização de estado (manual)
|
|
59
|
+
|
|
60
|
+
Quando terminar a sessão:
|
|
61
|
+
- Atualizar `faseAtual.progresso` e `faseAtual.artefatos`.
|
|
62
|
+
- Registrar nota no histórico, se necessário.
|
|
63
|
+
- Atualizar `estado.metrica.ultimoComando = '/continuar-fase'`.
|
|
64
|
+
- Chamar `salvarEstado(estado)` para persistir.
|
|
@@ -2,12 +2,27 @@
|
|
|
2
2
|
description: Correção de bugs com fluxo estruturado (Reprodução → Análise → Fix → Regressão)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# /
|
|
5
|
+
# /corrigir-bug - Correção de Bug Maestro
|
|
6
6
|
|
|
7
7
|
$ARGUMENTS
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## Integração com o Maestro
|
|
12
|
+
|
|
13
|
+
1. Execute `/maestro` antes para garantir que o estado está sincronizado e detectar bloqueios ativos.
|
|
14
|
+
2. Crie helpers mentais para ler e salvar estado:
|
|
15
|
+
```javascript
|
|
16
|
+
const estado = lerJson('.maestro/estado.json');
|
|
17
|
+
function salvarEstado(next) {
|
|
18
|
+
escreverJson('.maestro/estado.json', next, { spaces: 2 });
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
3. Sempre passe `estado_json` para qualquer tool MCP que for invocado e registre eventos no `estado.historico` (`acao: "bug_iniciado"`, `bug_id`, `severidade`).
|
|
22
|
+
4. Use `content/guides/fases-mapeamento.md` para carregar especialistas, prompts e templates de apoio (Debugging, DevOps, Testes, etc.).
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
11
26
|
## Objetivo
|
|
12
27
|
|
|
13
28
|
Corrigir bugs de forma estruturada usando fluxo de 4 fases do MCP Maestro, com análise de causa raiz e testes de regressão.
|
|
@@ -21,8 +36,8 @@ Corrigir bugs de forma estruturada usando fluxo de 4 fases do MCP Maestro, com a
|
|
|
21
36
|
- Erro que requer análise sistemática
|
|
22
37
|
|
|
23
38
|
**NÃO usar para:**
|
|
24
|
-
- Nova funcionalidade → Use `/
|
|
25
|
-
- Refatoração de código → Use `/
|
|
39
|
+
- Nova funcionalidade → Use `/nova-feature`
|
|
40
|
+
- Refatoração de código → Use `/refatorar-codigo`
|
|
26
41
|
|
|
27
42
|
---
|
|
28
43
|
|
|
@@ -71,12 +86,21 @@ Corrigir bugs de forma estruturada usando fluxo de 4 fases do MCP Maestro, com a
|
|
|
71
86
|
|
|
72
87
|
### Passo 2: Iniciar Fluxo de Debugging
|
|
73
88
|
|
|
89
|
+
> [!IMPORTANT]
|
|
90
|
+
> **Protocolo stateless:** carregar `.maestro/estado.json` do disco antes de qualquer chamada.
|
|
91
|
+
|
|
74
92
|
```typescript
|
|
93
|
+
const estadoJson = lerArquivo('.maestro/estado.json');
|
|
94
|
+
|
|
75
95
|
await mcp_maestro_corrigir_bug({
|
|
76
96
|
descricao: "[descrição fornecida]",
|
|
77
97
|
severidade: "[critica/alta/media/baixa]",
|
|
78
|
-
ticket_id: "[opcional: JIRA-123]"
|
|
98
|
+
ticket_id: "[opcional: JIRA-123]",
|
|
99
|
+
estado_json: estadoJson,
|
|
100
|
+
diretorio: process.cwd()
|
|
79
101
|
});
|
|
102
|
+
|
|
103
|
+
salvarEstado(registrarHistorico(estado, { acao: 'bug_iniciado', severidade }));
|
|
80
104
|
```
|
|
81
105
|
|
|
82
106
|
**MCP cria contexto de bug e retorna:**
|
|
@@ -315,7 +339,7 @@ Executar deploy? Use `/deploy [ambiente]`
|
|
|
315
339
|
### Exemplo 1: Bug Crítico (Duplicação de Pedido)
|
|
316
340
|
|
|
317
341
|
```
|
|
318
|
-
User: /
|
|
342
|
+
User: /corrigir-bug
|
|
319
343
|
|
|
320
344
|
AI: Descreva o bug:
|
|
321
345
|
|
|
@@ -382,7 +406,7 @@ AI: ✅ Fluxo iniciado (BUG-001) - Severidade CRÍTICA
|
|
|
382
406
|
### Exemplo 2: Bug de UI (Baixa Severidade)
|
|
383
407
|
|
|
384
408
|
```
|
|
385
|
-
User: /
|
|
409
|
+
User: /corrigir-bug Botão de logout desalinhado no mobile
|
|
386
410
|
|
|
387
411
|
AI: Severidade?
|
|
388
412
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Inicia novo projeto Maestro com classificação automática e setup inteligente
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 🚀 Workflow de Iniciação - /iniciar-projeto
|
|
6
|
+
|
|
7
|
+
## 1. Coleta de informações
|
|
8
|
+
|
|
9
|
+
Pergunte ao usuário (ou utilize argumentos) para obter:
|
|
10
|
+
- Nome do projeto
|
|
11
|
+
- Descrição curta (problema, público, solução)
|
|
12
|
+
|
|
13
|
+
## 2. Classificação automática
|
|
14
|
+
|
|
15
|
+
1. Carregue o template em `templates/estado-template.json` e os fluxos definidos em `src/src/flows/types.ts` (funções `getFluxo`, `getFluxoComStitch`).
|
|
16
|
+
2. Use a função mental abaixo para sugerir configuração:
|
|
17
|
+
|
|
18
|
+
```javascript
|
|
19
|
+
const analise = classificarProjeto({ nome, descricao });
|
|
20
|
+
const fluxo = getFluxoComStitch(analise.complexidade, analise.usarStitch);
|
|
21
|
+
/* Retorna:
|
|
22
|
+
* - complexidade (simples/medio/complexo)
|
|
23
|
+
* - tier (7/13/17 fases)
|
|
24
|
+
* - especialistaInicial (fase 1 do fluxo escolhido)
|
|
25
|
+
*/
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Mostre a classificação e peça confirmação. Permita ajustes manuais caso o usuário solicite (ex.: "reclassificar para médio").
|
|
29
|
+
|
|
30
|
+
## 3. Geração do estado inicial
|
|
31
|
+
|
|
32
|
+
- Copie o template de estado e popule as fases com base em `fluxo.fases`.
|
|
33
|
+
- Garanta que cada fase traga `especialista`, `entregavel_esperado`, `scoreMinimo` e `gate_checklist` do fluxo MCP.
|
|
34
|
+
- Registre em `historico` o evento `projeto_iniciado` com justificativa da classificação.
|
|
35
|
+
- Defina helpers mentais para leitura/escrita:
|
|
36
|
+
```javascript
|
|
37
|
+
const estado = preencherTemplate(...);
|
|
38
|
+
function salvarEstado(state) {
|
|
39
|
+
escreverJson('.maestro/estado.json', state, { spaces: 2 });
|
|
40
|
+
}
|
|
41
|
+
salvarEstado(estado);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 4. Setup do contexto
|
|
45
|
+
|
|
46
|
+
- Copiar templates necessários para `docs/<fase>/...`
|
|
47
|
+
- Registrar especialista inicial (`Gestão de Produto` para fase 1)
|
|
48
|
+
- Preparar prompts e skills relevantes
|
|
49
|
+
|
|
50
|
+
## 5. Mensagem de saída
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
✅ Projeto iniciado!
|
|
54
|
+
- Fase 1/ {totalFases}: Produto
|
|
55
|
+
- Especialista: Gestão de Produto
|
|
56
|
+
- Entregável: docs/01-produto/PRD.md
|
|
57
|
+
|
|
58
|
+
Próximo passo: responda às perguntas do especialista para preencher o PRD.
|
|
59
|
+
```
|