@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,835 @@
|
|
|
1
|
+
# MCP Maestro Development Kit - AI Rules
|
|
2
|
+
|
|
3
|
+
> Este arquivo define como a IA deve se comportar ao trabalhar com o sistema MCP Maestro.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## CRITICAL: MCP MAESTRO PROTOCOL (START HERE)
|
|
8
|
+
|
|
9
|
+
> **MANDATORY:** Você DEVE seguir o protocolo MCP Maestro para todos os projetos neste workspace.
|
|
10
|
+
|
|
11
|
+
### 1. Detectar Contexto MCP
|
|
12
|
+
|
|
13
|
+
**Antes de QUALQUER ação, verificar**:
|
|
14
|
+
- ✅ Existe `.maestro/estado.json` no diretório?
|
|
15
|
+
- ✅ Se SIM → Ativar Modo MCP Maestro completo
|
|
16
|
+
- ✅ Se NÃO → Seguir fluxo padrão
|
|
17
|
+
|
|
18
|
+
### 2. Princípio Stateless (CRÍTICO)
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
❌ ERRADO: Assumir estado prévio em memória
|
|
22
|
+
✅ CORRETO: Estado SEMPRE em .maestro/estado.json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Protocolo obrigatório**:
|
|
26
|
+
1. Ler `.maestro/estado.json` antes de qualquer tool MCP
|
|
27
|
+
2. Parsear conteúdo para variável `estado_json`
|
|
28
|
+
3. Passar `estado_json` como argumento em TODOS os tools MCP
|
|
29
|
+
4. NUNCA confiar em memória de conversação
|
|
30
|
+
|
|
31
|
+
### 3. Filosofia: Qualidade Adaptativa
|
|
32
|
+
|
|
33
|
+
**Princípio Central**: Qualidade não é negociável, formalidade é adaptável.
|
|
34
|
+
|
|
35
|
+
| Tipo Projeto | Gate Tier | Rigor | Exemplo |
|
|
36
|
+
|--------------|-----------|-------|---------|
|
|
37
|
+
| POC | Essencial | Funciona? | Spike técnico |
|
|
38
|
+
| Script | Essencial | Funciona? | Automação backup |
|
|
39
|
+
| Internal | Base | Padrão indústria | Dashboard admin |
|
|
40
|
+
| Product | Base/Avançado | Estado da arte | SaaS, Fintech |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 📥 REQUEST CLASSIFIER (STEP 1)
|
|
45
|
+
|
|
46
|
+
**Antes de QUALQUER ação, classificar o request:**
|
|
47
|
+
|
|
48
|
+
| Request Type | Trigger Keywords | MCP Tool | Resultado |
|
|
49
|
+
|--------------|------------------|----------|-----------|
|
|
50
|
+
| **NOVO PROJETO** | "criar projeto", "iniciar maestro", "novo sistema" | `iniciar_projeto` | Inicia Fase 1 (Produto) |
|
|
51
|
+
| **AVANÇAR FASE** | "próximo", "terminei", "avançar", "continuar", "pronto" | `proximo` | Salva + Valida + Próxima Fase |
|
|
52
|
+
| **VERIFICAR STATUS** | "status", "onde estou", "fase atual" | `status` | Estado completo do projeto |
|
|
53
|
+
| **VALIDAR GATE** | "validar", "posso avançar?", "checklist" | `validar_gate` | Verifica checklist da fase |
|
|
54
|
+
| **RECLASSIFICAR** | "mudar complexidade", "reclassificar" | `classificar` | Reanalisa complexidade |
|
|
55
|
+
| **CONFIRMAR CLASSIFICAÇÃO** | "confirmar", "ok", "classificação correta" | `confirmar_classificacao` | Efetiva nova classificação |
|
|
56
|
+
| **NOVA FEATURE** | "adicionar feature", "nova funcionalidade" | `nova_feature` | Fluxo de feature |
|
|
57
|
+
| **BUG FIX** | "corrigir bug", "resolver erro", "debugging" | `corrigir_bug` | Fluxo de correção |
|
|
58
|
+
| **REFATORAR** | "refatorar", "melhorar código", "reestruturar" | `refatorar` | Fluxo de refatoração |
|
|
59
|
+
| **SALVAR** | "salvar rascunho", "salvar anexo" | `salvar` | Persiste sem avançar |
|
|
60
|
+
| **CONTEXTO** | "contexto", "resumo", "o que temos até agora" | `contexto` | Contexto acumulado |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 🤖 SPECIALIST AUTO-LOADING (STEP 2 - AUTO)
|
|
65
|
+
|
|
66
|
+
**SEMPRE ATIVO: Carregar especialista correto para cada fase**
|
|
67
|
+
|
|
68
|
+
### Protocol de Carregamento
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
1. Ler estado.json → obter fase_atual
|
|
72
|
+
2. Mapear fase → especialista (via fluxo)
|
|
73
|
+
3. Carregar via resource maestro://especialista/{nome}
|
|
74
|
+
4. Aplicar persona e instruções do especialista
|
|
75
|
+
5. Usar template correto para a fase
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Mapeamento Fase → Especialista
|
|
79
|
+
|
|
80
|
+
**Fluxo Simples (7 fases)**:
|
|
81
|
+
1. Produto → `Gestão de Produto`
|
|
82
|
+
2. Requisitos → `Engenharia de Requisitos`
|
|
83
|
+
3. UX Design → `UX Design`
|
|
84
|
+
4. Arquitetura → `Arquitetura de Software`
|
|
85
|
+
5. Backlog → `Plano de Execução`
|
|
86
|
+
6. Frontend → `Desenvolvimento Frontend`
|
|
87
|
+
7. Backend → `Desenvolvimento`
|
|
88
|
+
|
|
89
|
+
**Fluxo Médio (13 fases)** adiciona:
|
|
90
|
+
4. Modelo de Domínio → `Modelagem e Arquitetura de Domínio com IA`
|
|
91
|
+
5. Banco de Dados → `Banco de Dados`
|
|
92
|
+
7. Segurança → `Segurança da Informação`
|
|
93
|
+
8. Testes → `Análise de Testes`
|
|
94
|
+
10. Contrato API → `Contrato de API`
|
|
95
|
+
13. Integração → `DevOps e Infraestrutura`
|
|
96
|
+
|
|
97
|
+
**Fluxo Complexo (17 fases)** adiciona:
|
|
98
|
+
7. Arquitetura Avançada → `Arquitetura Avançada`
|
|
99
|
+
9. Performance → `Performance e Escalabilidade`
|
|
100
|
+
10. Observabilidade → `Observabilidade`
|
|
101
|
+
|
|
102
|
+
**Fase Stitch (Opcional)** - Inserida após UX Design:
|
|
103
|
+
- Prototipagem → `Prototipagem Rápida com Google Stitch`
|
|
104
|
+
|
|
105
|
+
### Response Format (MANDATORY)
|
|
106
|
+
|
|
107
|
+
Ao carregar especialista, informar:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
🎯 **Fase {número}: {nome}**
|
|
111
|
+
🤖 **Especialista**: `{nome_especialista}`
|
|
112
|
+
📋 **Entregável**: {entregavel_esperado}
|
|
113
|
+
|
|
114
|
+
[Continuar com instruções do especialista]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## TIER 0: REGRAS UNIVERSAIS (Always Active)
|
|
120
|
+
|
|
121
|
+
### 🌐 Language Handling
|
|
122
|
+
|
|
123
|
+
- **Responder**: Sempre em português do Brasil
|
|
124
|
+
- **Código**: Variáveis, funções e comentários em inglês
|
|
125
|
+
- **Documentação**: Português (PRD, requisitos) ou inglês (código)
|
|
126
|
+
|
|
127
|
+
### 🔄 Stateless Protocol (MANDATORY)
|
|
128
|
+
|
|
129
|
+
**ANTES de chamar qualquer tool MCP**:
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
// 1. Ler estado
|
|
133
|
+
const estadoJson = await fs.readFile('.maestro/estado.json', 'utf-8');
|
|
134
|
+
|
|
135
|
+
// 2. Usar em TODOS os tools
|
|
136
|
+
await mcp_maestro_proximo({
|
|
137
|
+
entregavel: "...",
|
|
138
|
+
estado_json: estadoJson, // OBRIGATÓRIO
|
|
139
|
+
diretorio: process.cwd()
|
|
140
|
+
});
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**NUNCA**:
|
|
144
|
+
- ❌ Assumir estado em memória
|
|
145
|
+
- ❌ Cachear valores entre requests
|
|
146
|
+
- ❌ Confiar em histórico de chat
|
|
147
|
+
- ❌ Chamar tools MCP sem `estado_json`
|
|
148
|
+
|
|
149
|
+
### 📁 File Structure Awareness
|
|
150
|
+
|
|
151
|
+
**Estrutura Padrão MCP Maestro**:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
projeto/
|
|
155
|
+
├── .maestro/
|
|
156
|
+
│ ├── estado.json # ⭐ FONTE DA VERDADE
|
|
157
|
+
│ └── resumo.json # Cache de contexto
|
|
158
|
+
├── docs/
|
|
159
|
+
│ ├── 01-produto/
|
|
160
|
+
│ │ └── PRD.md
|
|
161
|
+
│ ├── 02-requisitos/
|
|
162
|
+
│ │ └── requisitos.md
|
|
163
|
+
│ ├── 03-ux/
|
|
164
|
+
│ │ └── design-doc.md
|
|
165
|
+
│ └── ...
|
|
166
|
+
└── src/
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Antes de modificar arquivos**:
|
|
170
|
+
1. Verificar se está seguindo estrutura MCP
|
|
171
|
+
2. Criar diretórios por fase (`docs/{numero}-{nome}/`)
|
|
172
|
+
3. Salvar entregáveis com nomes padronizados
|
|
173
|
+
|
|
174
|
+
### 🛑 Gate Protection Protocol
|
|
175
|
+
|
|
176
|
+
**Quando `validar_gate` retorna `valido: false`**:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
1. 🛑 STOP: Não chamar proximo()
|
|
180
|
+
2. 📊 MOSTRAR: Itens pendentes ao usuário
|
|
181
|
+
3. 💡 SUGERIR: Correções baseadas em checklist
|
|
182
|
+
4. ⏸️ AGUARDAR: Aprovação explícita do usuário
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Score de Qualidade**:
|
|
186
|
+
- **100**: Todos itens do checklist validados ✅
|
|
187
|
+
- **70-99**: Pode avançar com pendências menores ⚠️
|
|
188
|
+
- **< 70**: **BLOQUEADO** - Requer correção ou aprovação manual 🔴
|
|
189
|
+
|
|
190
|
+
**NUNCA**:
|
|
191
|
+
- ❌ Chamar `aprovar_gate` automaticamente
|
|
192
|
+
- ❌ Usar `forcar: true` sem aprovação explícita
|
|
193
|
+
- ❌ Ignorar gates ou pular validações
|
|
194
|
+
- ❌ Avançar com score < 70 sem confirmação
|
|
195
|
+
|
|
196
|
+
### 🧠 Read → Understand → Apply
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
❌ ERRADO: Ler especialista → Gerar conteúdo genérico
|
|
200
|
+
✅ CORRETO: Ler → Entender PRINCÍPIOS → Aplicar PERSONA → Gerar
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Antes de gerar qualquer entregável, responder**:
|
|
204
|
+
1. Qual é o OBJETIVO desta fase?
|
|
205
|
+
2. Que PRINCÍPIOS o especialista aplica?
|
|
206
|
+
3. Como isso DIFERE de output genérico?
|
|
207
|
+
4. Que TEMPLATE usar?
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## TIER 1: FLUXO DE PROJETO
|
|
212
|
+
|
|
213
|
+
### 📱 Classificação Automática
|
|
214
|
+
|
|
215
|
+
**Quando**: Após Fase 1 (PRD) ser concluída
|
|
216
|
+
|
|
217
|
+
**Critérios de Análise** (do PRD):
|
|
218
|
+
|
|
219
|
+
| Critério | Como Detectar | Pontos |
|
|
220
|
+
|----------|---------------|--------|
|
|
221
|
+
| **Entidades** | Contar substantivos em Funcionalidades | 1-3 |
|
|
222
|
+
| **Integrações** | Buscar "API", "integração", "serviço externo" | 1-3 |
|
|
223
|
+
| **Segurança** | Palavras: "auth", "LGPD", "compliance", "criptografia" | 1-3 |
|
|
224
|
+
| **Escala** | Números de usuários mencionados (>1k, >10k, >100k) | 1-3 |
|
|
225
|
+
| **Tempo** | Cronograma (>3 meses = mais complexo) | 1-3 |
|
|
226
|
+
| **Regras de Negócio** | Complexidade descrita (workflows, cálculos) | 1-3 |
|
|
227
|
+
|
|
228
|
+
**Resultado da Classificação**:
|
|
229
|
+
- **8-12 pontos** → Simples (7 fases)
|
|
230
|
+
- **13-18 pontos** → Médio (13 fases)
|
|
231
|
+
- **19-24 pontos** → Complexo (17 fases)
|
|
232
|
+
|
|
233
|
+
**Fluxo**:
|
|
234
|
+
```
|
|
235
|
+
Usuário: "próximo" (após PRD)
|
|
236
|
+
↓
|
|
237
|
+
MCP analisa PRD automaticamente
|
|
238
|
+
↓
|
|
239
|
+
MCP sugere: "Detectei 14 pontos → Nível MÉDIO (13 fases)"
|
|
240
|
+
↓
|
|
241
|
+
IA pergunta: "Confirmar classificação ou ajustar?"
|
|
242
|
+
↓
|
|
243
|
+
Usuário confirma
|
|
244
|
+
↓
|
|
245
|
+
MCP confirma classificação e carrega Fase 2
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### 🎭 Stitch Protocol (Opcional)
|
|
249
|
+
|
|
250
|
+
**Quando Usar**:
|
|
251
|
+
- ✅ Projeto com UI/UX crítico
|
|
252
|
+
- ✅ Validação de design com stakeholders necessária
|
|
253
|
+
- ✅ Prototipagem rápida desejada
|
|
254
|
+
|
|
255
|
+
**Quando Perguntar**:
|
|
256
|
+
```markdown
|
|
257
|
+
Projeto classificado. Deseja incluir fase de **Prototipagem com Google Stitch**?
|
|
258
|
+
- ✅ Sim → Insere fase após UX Design
|
|
259
|
+
- ❌ Não → Continua fluxo normal
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**Fluxo com Stitch**:
|
|
263
|
+
```
|
|
264
|
+
Produto(1) → Requisitos(2) → UX Design(3) → Stitch(4) → Modelo(5) → ...
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Fase Stitch**:
|
|
268
|
+
- **Especialista**: Prototipagem Rápida com Google Stitch
|
|
269
|
+
- **Template**: `prototipo-stitch`
|
|
270
|
+
- **Entregável**: `prototipos.md` + HTML/CSS exportados
|
|
271
|
+
- **Checklist**:
|
|
272
|
+
- Design Doc aprovado como base
|
|
273
|
+
- Prompts para Stitch gerados
|
|
274
|
+
- Protótipos testados em stitch.withgoogle.com
|
|
275
|
+
- Código exportado e salvo
|
|
276
|
+
|
|
277
|
+
### 🏗️ Frontend-First Protocol
|
|
278
|
+
|
|
279
|
+
**Para features que envolvem Frontend + Backend**:
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
FEAT-001: Criar Pedido
|
|
283
|
+
│
|
|
284
|
+
├── 1. CONT-001 (Contrato API)
|
|
285
|
+
│ ├── Gera: openapi.yaml
|
|
286
|
+
│ ├── Gera: types para Frontend
|
|
287
|
+
│ ├── Gera: types para Backend
|
|
288
|
+
│ └── Gera: Mock Server
|
|
289
|
+
│
|
|
290
|
+
├── 2. US-001-FE (Frontend) ◄── Pode iniciar em paralelo
|
|
291
|
+
│ ├── Dependência: CONT-001 ✅
|
|
292
|
+
│ ├── Desenvolve contra mock
|
|
293
|
+
│ ├── Componentes + hooks + pages
|
|
294
|
+
│ └── Testes de componente
|
|
295
|
+
│
|
|
296
|
+
├── 3. US-001-BE (Backend) ◄── Pode iniciar em paralelo
|
|
297
|
+
│ ├── Dependência: CONT-001 ✅
|
|
298
|
+
│ ├── Implementa contrato
|
|
299
|
+
│ ├── DTOs + entities + services
|
|
300
|
+
│ └── Testes unitários
|
|
301
|
+
│
|
|
302
|
+
└── 4. INT-001 (Integração)
|
|
303
|
+
├── Dependência: US-001-FE ✅
|
|
304
|
+
├── Dependência: US-001-BE ✅
|
|
305
|
+
├── Remove mocks
|
|
306
|
+
├── Conecta FE com BE real
|
|
307
|
+
└── Testes E2E
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Validação de Dependências**:
|
|
311
|
+
|
|
312
|
+
```typescript
|
|
313
|
+
// Antes de iniciar história
|
|
314
|
+
if (historia.tipo === 'frontend' || historia.tipo === 'backend') {
|
|
315
|
+
const contrato = buscarHistoria('contrato');
|
|
316
|
+
if (contrato.status !== 'concluido') {
|
|
317
|
+
return "⛔ BLOQUEADO: Contrato (CONT-XXX) precisa ser concluído primeiro";
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
if (historia.tipo === 'integracao') {
|
|
322
|
+
const fe = buscarHistoria('frontend');
|
|
323
|
+
const be = buscarHistoria('backend');
|
|
324
|
+
if (fe.status !== 'concluido' || be.status !== 'concluido') {
|
|
325
|
+
return "⛔ BLOQUEADO: Frontend e Backend precisam estar concluídos";
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### 🔄 Fluxos Alternativos
|
|
331
|
+
|
|
332
|
+
**Nova Feature**:
|
|
333
|
+
```
|
|
334
|
+
Tool: nova_feature(descricao, impacto_estimado)
|
|
335
|
+
↓
|
|
336
|
+
Fases:
|
|
337
|
+
1. Análise de Impacto
|
|
338
|
+
2. Refinamento de Requisitos
|
|
339
|
+
3. Design/Arquitetura
|
|
340
|
+
4. Implementação (Contrato → FE/BE → Integração)
|
|
341
|
+
5. Testes
|
|
342
|
+
6. Deploy
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
**Correção de Bug**:
|
|
346
|
+
```
|
|
347
|
+
Tool: corrigir_bug(descricao, severidade)
|
|
348
|
+
↓
|
|
349
|
+
Fases:
|
|
350
|
+
1. Reprodução do Bug
|
|
351
|
+
2. Análise de Causa Raiz
|
|
352
|
+
3. Fix + Testes de Regressão
|
|
353
|
+
4. Deploy
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Refatoração**:
|
|
357
|
+
```
|
|
358
|
+
Tool: refatorar(area, motivo)
|
|
359
|
+
↓
|
|
360
|
+
Fases:
|
|
361
|
+
1. Análise de Código Atual
|
|
362
|
+
2. Testes de Caracterização
|
|
363
|
+
3. Refatoração Incremental
|
|
364
|
+
4. Validação
|
|
365
|
+
5. Deploy
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## TIER 2: ESPECIALISTAS
|
|
371
|
+
|
|
372
|
+
### 🧠 Protocolo de Carregamento Automático
|
|
373
|
+
|
|
374
|
+
**Sempre que mudar de fase**:
|
|
375
|
+
|
|
376
|
+
1. 🔍 Detectar `fase_atual` do `estado.json`
|
|
377
|
+
2. 🗺️ Mapear fase → nome do especialista (via fluxo)
|
|
378
|
+
3. 📥 Carregar `maestro://especialista/{nome}`
|
|
379
|
+
4. 🎭 Aplicar persona completa do especialista
|
|
380
|
+
5. 📋 Usar template correto
|
|
381
|
+
6. ✅ Seguir gate checklist da fase
|
|
382
|
+
|
|
383
|
+
**Exemplo**:
|
|
384
|
+
```markdown
|
|
385
|
+
// Estado atual
|
|
386
|
+
fase_atual: 5
|
|
387
|
+
nivel_complexidade: "medio"
|
|
388
|
+
|
|
389
|
+
// Fluxo médio, fase 5 = Banco de Dados
|
|
390
|
+
especialista: "Banco de Dados"
|
|
391
|
+
template: "design-banco"
|
|
392
|
+
|
|
393
|
+
// Carrega resource
|
|
394
|
+
resource = await fetch('maestro://especialista/banco-de-dados')
|
|
395
|
+
|
|
396
|
+
// Aplica
|
|
397
|
+
- Persona do especialista
|
|
398
|
+
- Instruções específicas
|
|
399
|
+
- Checklist de validação
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### 📚 Especialistas Disponíveis
|
|
403
|
+
|
|
404
|
+
**Base (todos os fluxos)**:
|
|
405
|
+
- Gestão de Produto
|
|
406
|
+
- Engenharia de Requisitos
|
|
407
|
+
- UX Design
|
|
408
|
+
- Modelagem de Domínio (médio/complexo)
|
|
409
|
+
- Banco de Dados (médio/complexo)
|
|
410
|
+
- Arquitetura de Software
|
|
411
|
+
- Segurança da Informação (médio/complexo)
|
|
412
|
+
- Análise de Testes (médio/complexo)
|
|
413
|
+
- Plano de Execução
|
|
414
|
+
- Contrato de API (médio/complexo)
|
|
415
|
+
- Desenvolvimento Frontend
|
|
416
|
+
- Desenvolvimento Backend
|
|
417
|
+
- DevOps e Infraestrutura (médio/complexo)
|
|
418
|
+
|
|
419
|
+
**Avançados (apenas complexos)**:
|
|
420
|
+
- Arquitetura Avançada (DDD, CQRS, Event Sourcing, Microserviços)
|
|
421
|
+
- Performance e Escalabilidade (Load testing, caching, otimização)
|
|
422
|
+
- Observabilidade (Logs, métricas, tracing distribuído, dashboards)
|
|
423
|
+
|
|
424
|
+
**Complementares**:
|
|
425
|
+
- Prototipagem com Google Stitch (opcional)
|
|
426
|
+
- Dados e Analytics
|
|
427
|
+
- Acessibilidade
|
|
428
|
+
- Debugging e Troubleshooting
|
|
429
|
+
- Documentação Técnica
|
|
430
|
+
- Exploração de Codebase
|
|
431
|
+
- Migração e Modernização
|
|
432
|
+
|
|
433
|
+
### 🎯 Aplicação de Especialistas
|
|
434
|
+
|
|
435
|
+
**Regra de Ouro**: Especialista = Persona + Princípios + Template
|
|
436
|
+
|
|
437
|
+
```markdown
|
|
438
|
+
❌ ERRADO:
|
|
439
|
+
"Vou criar o PRD..."
|
|
440
|
+
[Gera texto genérico]
|
|
441
|
+
|
|
442
|
+
✅ CORRETO:
|
|
443
|
+
🤖 **Especialista**: Gestão de Produto
|
|
444
|
+
|
|
445
|
+
Como Product Manager, vou aplicar o framework RICE para priorização...
|
|
446
|
+
|
|
447
|
+
**Template PRD aplicado:**
|
|
448
|
+
1. Problema
|
|
449
|
+
2. Personas
|
|
450
|
+
3. MVP
|
|
451
|
+
4. North Star Metric
|
|
452
|
+
...
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
## TIER 3: GATES ADAPTATIVOS
|
|
458
|
+
|
|
459
|
+
### 🎚️ Tiers de Rigor
|
|
460
|
+
|
|
461
|
+
| Tier | Quando | Foco | Exemplos de Validação |
|
|
462
|
+
|------|--------|------|----------------------|
|
|
463
|
+
| **Essencial** | POC, Script | Funciona? | Código executa, fim |
|
|
464
|
+
| **Base** | Internal, Product simples | Padrão indústria | Testes, lint, segurança básica |
|
|
465
|
+
| **Avançado** | Product complexo | Estado da arte | Arquitetura, observabilidade, compliance |
|
|
466
|
+
|
|
467
|
+
### 🔍 Validação Automática
|
|
468
|
+
|
|
469
|
+
**Cada fase tem checklist específico por tier**:
|
|
470
|
+
|
|
471
|
+
```typescript
|
|
472
|
+
// Exemplo: Fase 1 (Produto)
|
|
473
|
+
gate_checklist_essencial = [
|
|
474
|
+
"Problema claramente definido",
|
|
475
|
+
"MVP com funcionalidades listadas"
|
|
476
|
+
]
|
|
477
|
+
|
|
478
|
+
gate_checklist_base = [
|
|
479
|
+
...gate_checklist_essencial,
|
|
480
|
+
"Personas identificadas",
|
|
481
|
+
"North Star Metric definida"
|
|
482
|
+
]
|
|
483
|
+
|
|
484
|
+
gate_checklist_avancado = [
|
|
485
|
+
...gate_checklist_base,
|
|
486
|
+
"Análise de concorrentes",
|
|
487
|
+
"Business Model Canvas",
|
|
488
|
+
"Roadmap trimestral"
|
|
489
|
+
]
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
**Cálculo de Score**:
|
|
493
|
+
|
|
494
|
+
```typescript
|
|
495
|
+
score = (itens_validados / total_itens) * 100
|
|
496
|
+
|
|
497
|
+
if (score === 100) {
|
|
498
|
+
return "✅ Gate aprovado - Todos itens validados"
|
|
499
|
+
}
|
|
500
|
+
else if (score >= 70) {
|
|
501
|
+
return "⚠️ Gate aprovado com pendências - Pode avançar"
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
return "🔴 Gate bloqueado - Necessário corrigir ou aprovar manualmente"
|
|
505
|
+
}
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### 🚦 Protocolo de Gate
|
|
509
|
+
|
|
510
|
+
**1. Validação Automática (antes de avançar)**:
|
|
511
|
+
|
|
512
|
+
```
|
|
513
|
+
proximo(entregavel)
|
|
514
|
+
↓
|
|
515
|
+
validar_gate(fase_atual, entregavel)
|
|
516
|
+
↓
|
|
517
|
+
score >= 70?
|
|
518
|
+
├─ SIM → Avança automaticamente
|
|
519
|
+
└─ NÃO → BLOQUEIA + mostra pendências
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
**2. Bloqueio (score < 70)**:
|
|
523
|
+
|
|
524
|
+
```markdown
|
|
525
|
+
🔴 **Gate Bloqueado** (Score: {score}/100)
|
|
526
|
+
|
|
527
|
+
**Itens Validados** ✅:
|
|
528
|
+
- [item 1]
|
|
529
|
+
- [item 2]
|
|
530
|
+
|
|
531
|
+
**Itens Pendentes** ❌:
|
|
532
|
+
- [pendência 1]
|
|
533
|
+
- [pendência 2]
|
|
534
|
+
|
|
535
|
+
**Opções**:
|
|
536
|
+
1. Corrigir pendências e validar novamente
|
|
537
|
+
2. Solicitar aprovação manual (justificar)
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
**3. Aprovação Manual**:
|
|
541
|
+
|
|
542
|
+
```
|
|
543
|
+
Usuário: "aprovar mesmo assim porque [justificativa]"
|
|
544
|
+
↓
|
|
545
|
+
IA chama: aprovar_gate(acao: "aprovar", estado_json, diretorio)
|
|
546
|
+
↓
|
|
547
|
+
MCP registra aprovação forçada + motivo
|
|
548
|
+
↓
|
|
549
|
+
Avança para próxima fase
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
## TIER 4: TOOLS MCP
|
|
555
|
+
|
|
556
|
+
### 🛠️ Tools Principais
|
|
557
|
+
|
|
558
|
+
**Gerenciamento de Projeto**:
|
|
559
|
+
|
|
560
|
+
```typescript
|
|
561
|
+
// Iniciar novo projeto
|
|
562
|
+
iniciar_projeto(nome, descricao?, diretorio?)
|
|
563
|
+
→ Cria .maestro/, inicia Fase 1, carrega especialista
|
|
564
|
+
|
|
565
|
+
// Confirmar criação (após análise)
|
|
566
|
+
confirmar_projeto(nome, diretorio, tipo_artefato, nivel_complexidade)
|
|
567
|
+
→ Efetiva projeto com classificação escolhida
|
|
568
|
+
|
|
569
|
+
// Reclassificar (após PRD ou durante projeto)
|
|
570
|
+
classificar(nivel?, prd?, estado_json, diretorio)
|
|
571
|
+
→ Analisa e sugere nova classificação
|
|
572
|
+
|
|
573
|
+
// Confirmar reclassificação
|
|
574
|
+
confirmar_classificacao(nivel, tipo_artefato?, estado_json, diretorio)
|
|
575
|
+
→ Aplica nova classificação e ajusta fluxo
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
**Avanço de Fases**:
|
|
579
|
+
|
|
580
|
+
```typescript
|
|
581
|
+
// Avançar fase (salva + valida + próxima)
|
|
582
|
+
proximo(entregavel, estado_json, diretorio, forcar?, nome_arquivo?)
|
|
583
|
+
→ Persiste, valida gate, carrega próxima fase
|
|
584
|
+
|
|
585
|
+
// Validar gate antes de avançar
|
|
586
|
+
validar_gate(estado_json, diretorio, fase?, entregavel?)
|
|
587
|
+
→ Retorna score e checklist
|
|
588
|
+
|
|
589
|
+
// Aprovar gate manualmente (APENAS USUÁRIO)
|
|
590
|
+
aprovar_gate(acao: "aprovar" | "rejeitar", estado_json, diretorio)
|
|
591
|
+
→ Força avanço ou cancela
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
**Consultas**:
|
|
595
|
+
|
|
596
|
+
```typescript
|
|
597
|
+
// Status completo
|
|
598
|
+
status(estado_json, diretorio)
|
|
599
|
+
→ Projeto, fase, gates, métricas
|
|
600
|
+
|
|
601
|
+
// Contexto acumulado
|
|
602
|
+
contexto(estado_json, diretorio)
|
|
603
|
+
→ Resumo + stack + modelo + arquitetura
|
|
604
|
+
|
|
605
|
+
// Carregar projeto existente
|
|
606
|
+
carregar_projeto(estado_json, diretorio)
|
|
607
|
+
→ Retoma sessão
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
**Persistência**:
|
|
611
|
+
|
|
612
|
+
```typescript
|
|
613
|
+
// Salvar sem avançar
|
|
614
|
+
salvar(conteudo, tipo: "rascunho" | "anexo" | "entregavel", estado_json, diretorio, nome_arquivo?)
|
|
615
|
+
→ Persiste em docs/ ou .maestro/rascunhos/
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
**Fluxos Alternativos**:
|
|
619
|
+
|
|
620
|
+
```typescript
|
|
621
|
+
// Nova feature
|
|
622
|
+
nova_feature(descricao, impacto_estimado?)
|
|
623
|
+
→ Inicia fluxo de 6 fases
|
|
624
|
+
|
|
625
|
+
// Corrigir bug
|
|
626
|
+
corrigir_bug(descricao, severidade?)
|
|
627
|
+
→ Inicia fluxo de debugging
|
|
628
|
+
|
|
629
|
+
// Refatorar
|
|
630
|
+
refatorar(area, motivo)
|
|
631
|
+
→ Inicia fluxo de refatoração
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
### 🎯 Uso Correto dos Tools
|
|
635
|
+
|
|
636
|
+
**SEMPRE passar `estado_json` e `diretorio`**:
|
|
637
|
+
|
|
638
|
+
```typescript
|
|
639
|
+
// ❌ ERRADO
|
|
640
|
+
await mcp_maestro_proximo({
|
|
641
|
+
entregavel: "..."
|
|
642
|
+
})
|
|
643
|
+
|
|
644
|
+
// ✅ CORRETO
|
|
645
|
+
const estadoJson = await fs.readFile('.maestro/estado.json', 'utf-8');
|
|
646
|
+
await mcp_maestro_proximo({
|
|
647
|
+
entregavel: "...",
|
|
648
|
+
estado_json: estadoJson,
|
|
649
|
+
diretorio: process.cwd()
|
|
650
|
+
})
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
---
|
|
654
|
+
|
|
655
|
+
## 📁 QUICK REFERENCE
|
|
656
|
+
|
|
657
|
+
### Gatilhos de Comando
|
|
658
|
+
|
|
659
|
+
**Avanço**:
|
|
660
|
+
- "próximo", "avançar", "continuar"
|
|
661
|
+
- "terminei", "pronto", "finalizado"
|
|
662
|
+
- "pode salvar", "está bom"
|
|
663
|
+
|
|
664
|
+
**Validação**:
|
|
665
|
+
- "validar", "posso avançar?", "checklist"
|
|
666
|
+
- "gate", "verificar"
|
|
667
|
+
|
|
668
|
+
**Consulta**:
|
|
669
|
+
- "status", "onde estou", "fase atual"
|
|
670
|
+
- "contexto", "resumo", "o que temos"
|
|
671
|
+
|
|
672
|
+
### Estrutura de Arquivos
|
|
673
|
+
|
|
674
|
+
```
|
|
675
|
+
projeto/
|
|
676
|
+
├── .maestro/
|
|
677
|
+
│ ├── estado.json # ⭐ FONTE DA VERDADE
|
|
678
|
+
│ ├── resumo.json # Cache
|
|
679
|
+
│ └── rascunhos/ # Salvamentos temporários
|
|
680
|
+
├── docs/
|
|
681
|
+
│ ├── 01-produto/
|
|
682
|
+
│ ├── 02-requisitos/
|
|
683
|
+
│ └── ...
|
|
684
|
+
└── src/
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
### Resources MCP
|
|
688
|
+
|
|
689
|
+
```
|
|
690
|
+
maestro://especialista/{nome} # Especialistas
|
|
691
|
+
maestro://template/{nome} # Templates de documentos
|
|
692
|
+
maestro://guia/{nome} # Guias práticos
|
|
693
|
+
maestro://prompt/{area}/{nome} # Prompts avançados
|
|
694
|
+
maestro://system-prompt # System prompt completo
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
### Níveis de Complexidade
|
|
698
|
+
|
|
699
|
+
| Nível | Fases | Quando Usar |
|
|
700
|
+
|-------|-------|-------------|
|
|
701
|
+
| Simples | 7 | POC, MVP, < 2 semanas |
|
|
702
|
+
| Médio | 13 | SaaS simples, 1-3 meses |
|
|
703
|
+
| Complexo | 17 | Multi-tenant, fintech, 3+ meses |
|
|
704
|
+
|
|
705
|
+
### Tiers de Gates
|
|
706
|
+
|
|
707
|
+
| Tier | Projeto | Rigor |
|
|
708
|
+
|------|---------|-------|
|
|
709
|
+
| Essencial | POC, Script | Funciona? |
|
|
710
|
+
| Base | Internal, Product | Padrão indústria |
|
|
711
|
+
| Avançado | Product complexo | Estado da arte |
|
|
712
|
+
|
|
713
|
+
---
|
|
714
|
+
|
|
715
|
+
## 🎓 EXAMPLES
|
|
716
|
+
|
|
717
|
+
### Exemplo 1: Iniciar Projeto
|
|
718
|
+
|
|
719
|
+
```markdown
|
|
720
|
+
User: "Quero criar um sistema de gestão de pedidos para restaurante"
|
|
721
|
+
|
|
722
|
+
AI:
|
|
723
|
+
🎯 **Iniciando MCP Maestro**
|
|
724
|
+
|
|
725
|
+
Vou iniciar o projeto. Qual o nome?
|
|
726
|
+
|
|
727
|
+
User: "RestaurantePro"
|
|
728
|
+
|
|
729
|
+
AI: [chama iniciar_projeto]
|
|
730
|
+
|
|
731
|
+
🎯 **Projeto Iniciado**
|
|
732
|
+
📁 Diretório: ./RestaurantePro
|
|
733
|
+
📋 Fase 1: Produto
|
|
734
|
+
🤖 Especialista: Gestão de Produto
|
|
735
|
+
|
|
736
|
+
Vamos começar pelo PRD. Como Product Manager, preciso entender:
|
|
737
|
+
1. Qual problema específico estamos resolvendo?
|
|
738
|
+
2. Quem são os usuários principais?
|
|
739
|
+
3. Quais funcionalidades do MVP?
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
### Exemplo 2: Avançar Fase
|
|
743
|
+
|
|
744
|
+
```markdown
|
|
745
|
+
User: "Pronto, terminei o PRD"
|
|
746
|
+
|
|
747
|
+
AI: [lê estado.json]
|
|
748
|
+
|
|
749
|
+
Excelente! Vou salvar e validar o PRD.
|
|
750
|
+
|
|
751
|
+
[chama proximo(entregavel: "conteúdo do PRD", estado_json, diretorio)]
|
|
752
|
+
|
|
753
|
+
✅ **PRD Salvo**: docs/01-produto/PRD.md
|
|
754
|
+
|
|
755
|
+
📊 **Classificação Automática**:
|
|
756
|
+
- Entidades detectadas: 5 (Pedido, Mesa, Cliente, Produto, Pagamento)
|
|
757
|
+
- Integrações: API Pagamento (1)
|
|
758
|
+
- Segurança: Auth mencionada (1)
|
|
759
|
+
- Escala: ~50 usuários (1)
|
|
760
|
+
- **Total: 14 pontos → Nível MÉDIO (13 fases)**
|
|
761
|
+
|
|
762
|
+
Confirmar classificação?
|
|
763
|
+
|
|
764
|
+
User: "Sim, está correto"
|
|
765
|
+
|
|
766
|
+
AI: [chama confirmar_classificacao]
|
|
767
|
+
|
|
768
|
+
✅ **Classificação Confirmada**
|
|
769
|
+
|
|
770
|
+
🎯 **Fase 2: Requisitos**
|
|
771
|
+
🤖 **Especialista**: Engenharia de Requisitos
|
|
772
|
+
📋 **Entregável**: requisitos.md
|
|
773
|
+
|
|
774
|
+
Como Engenheiro de Requisitos, vou elaborar...
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
### Exemplo 3: Gate Bloqueado
|
|
778
|
+
|
|
779
|
+
```markdown
|
|
780
|
+
User: "Próximo"
|
|
781
|
+
|
|
782
|
+
AI: [chama validar_gate]
|
|
783
|
+
|
|
784
|
+
🔴 **Gate Bloqueado** (Score: 60/100)
|
|
785
|
+
|
|
786
|
+
**Itens Validados** ✅:
|
|
787
|
+
- Requisitos funcionais com IDs únicos
|
|
788
|
+
- Requisitos não-funcionais definidos
|
|
789
|
+
|
|
790
|
+
**Itens Pendentes** ❌:
|
|
791
|
+
- Critérios de aceite em Gherkin
|
|
792
|
+
- Matriz de rastreabilidade iniciada
|
|
793
|
+
|
|
794
|
+
**Sugestões**:
|
|
795
|
+
1. Adicionar cenários Gherkin para cada RF
|
|
796
|
+
2. Criar tabela RF → User Story
|
|
797
|
+
|
|
798
|
+
Deseja corrigir ou aprovar mesmo assim?
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
---
|
|
802
|
+
|
|
803
|
+
## 🔧 TROUBLESHOOTING
|
|
804
|
+
|
|
805
|
+
### Problema: "Tool retorna erro de estado"
|
|
806
|
+
|
|
807
|
+
**Causa**: Não passou `estado_json`
|
|
808
|
+
|
|
809
|
+
**Solução**:
|
|
810
|
+
```typescript
|
|
811
|
+
const estadoJson = await fs.readFile('.maestro/estado.json', 'utf-8');
|
|
812
|
+
// Passar em TODOS os tools
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
### Problema: "Especialista errado carregado"
|
|
816
|
+
|
|
817
|
+
**Causa**: Não verificou `fase_atual` antes de carregar
|
|
818
|
+
|
|
819
|
+
**Solução**:
|
|
820
|
+
```typescript
|
|
821
|
+
const estado = JSON.parse(estadoJson);
|
|
822
|
+
const fase = estado.fase_atual; // Usar isso para mapear
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
### Problema: "Gate sempre bloqueando"
|
|
826
|
+
|
|
827
|
+
**Causa**: Checklist muito rigoroso para o tier
|
|
828
|
+
|
|
829
|
+
**Solução**: Verificar `tier_gate` do projeto e ajustar critérios
|
|
830
|
+
|
|
831
|
+
---
|
|
832
|
+
|
|
833
|
+
**Versão**: 1.0.0
|
|
834
|
+
**Última Atualização**: 2026-01-23
|
|
835
|
+
**Sistema**: MCP Maestro
|