@maestro-ai/mcp-server 5.3.4 → 5.3.5
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/dist/content/rules/GEMINI.md +320 -675
- package/dist/content/rules/RULES.md +330 -629
- package/dist/content/rules/adapters/copilot.md +5 -0
- package/dist/content/rules/adapters/cursor.md +5 -0
- package/dist/content/rules/adapters/gemini.md +6 -1
- package/dist/content/rules/adapters/windsurf.md +5 -0
- package/dist/gates/unified-validator.d.ts +67 -0
- package/dist/gates/unified-validator.d.ts.map +1 -0
- package/dist/gates/unified-validator.js +234 -0
- package/dist/gates/unified-validator.js.map +1 -0
- package/dist/handlers/specialist-phase-handler.d.ts +9 -6
- package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
- package/dist/handlers/specialist-phase-handler.js +166 -44
- package/dist/handlers/specialist-phase-handler.js.map +1 -1
- package/dist/types/onboarding.d.ts +3 -1
- package/dist/types/onboarding.d.ts.map +1 -1
- package/dist/utils/content-injector.js +1 -1
- package/dist/utils/ide-paths.d.ts +1 -1
- package/dist/utils/ide-paths.js +1 -1
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +2 -1
- package/dist/utils/response-formatter.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,776 +1,445 @@
|
|
|
1
1
|
---
|
|
2
2
|
trigger: always_on
|
|
3
3
|
system: maestro
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# MCP Maestro Development Kit v3 — AI Rules
|
|
8
8
|
|
|
9
|
-
>
|
|
9
|
+
> Guia para a IA interagir com o sistema MCP Maestro.
|
|
10
|
+
> Conteúdo universal para todas as IDEs (Cursor, Windsurf, Antigravity/Gemini, Copilot).
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
> **MANDATORY:** Você DEVE seguir o protocolo MCP Maestro para todos os projetos neste workspace.
|
|
14
|
+
## 🚨 PROTOCOLO OBRIGATÓRIO (START HERE)
|
|
16
15
|
|
|
17
16
|
### 1. Detectar Contexto MCP
|
|
18
17
|
|
|
19
|
-
**Antes de QUALQUER ação
|
|
20
|
-
- ✅ Existe `.maestro/estado.json
|
|
21
|
-
-
|
|
22
|
-
- ✅ Se NÃO → Seguir fluxo padrão
|
|
18
|
+
**Antes de QUALQUER ação:**
|
|
19
|
+
- ✅ Existe `.maestro/estado.json`? → **Modo MCP Maestro ativo**
|
|
20
|
+
- ❌ Não existe? → Seguir fluxo padrão
|
|
23
21
|
|
|
24
|
-
### 2. Princípio Stateless
|
|
22
|
+
### 2. Princípio Stateless
|
|
25
23
|
|
|
26
24
|
```
|
|
27
25
|
❌ ERRADO: Assumir estado prévio em memória
|
|
28
|
-
✅ CORRETO: Estado SEMPRE
|
|
26
|
+
✅ CORRETO: Estado SEMPRE lido de .maestro/estado.json
|
|
29
27
|
```
|
|
30
28
|
|
|
31
|
-
**Protocolo
|
|
29
|
+
**Protocolo:**
|
|
32
30
|
1. Ler `.maestro/estado.json` antes de qualquer tool MCP
|
|
33
|
-
2.
|
|
34
|
-
3. Passar `
|
|
31
|
+
2. Passar `estado_json` como argumento em TODOS os tools
|
|
32
|
+
3. Passar `diretorio` (caminho absoluto) em TODOS os tools
|
|
35
33
|
4. NUNCA confiar em memória de conversação
|
|
36
34
|
|
|
37
|
-
### 3.
|
|
38
|
-
|
|
39
|
-
**Princípio Central**: Qualidade não é negociável, formalidade é adaptável.
|
|
35
|
+
### 3. Qualidade Adaptativa
|
|
40
36
|
|
|
41
37
|
| Tipo Projeto | Gate Tier | Rigor | Exemplo |
|
|
42
38
|
|--------------|-----------|-------|---------|
|
|
43
39
|
| POC | Essencial | Funciona? | Spike técnico |
|
|
44
|
-
| Script | Essencial | Funciona? | Automação
|
|
45
|
-
| Internal | Base | Padrão indústria | Dashboard
|
|
40
|
+
| Script | Essencial | Funciona? | Automação |
|
|
41
|
+
| Internal | Base | Padrão indústria | Dashboard |
|
|
46
42
|
| Product | Base/Avançado | Estado da arte | SaaS, Fintech |
|
|
47
43
|
|
|
48
44
|
---
|
|
49
45
|
|
|
50
|
-
##
|
|
51
|
-
|
|
52
|
-
**Antes de QUALQUER ação, classificar o request:**
|
|
46
|
+
## ⚡ 5 TOOLS PÚBLICAS
|
|
53
47
|
|
|
54
|
-
|
|
55
|
-
|--------------|------------------|----------|-----------|
|
|
56
|
-
| **NOVO PROJETO** | "criar projeto", "iniciar maestro", "novo sistema" | `iniciar_projeto` | Inicia Fase 1 (Produto) |
|
|
57
|
-
| **AVANÇAR FASE** | "próximo", "terminei", "avançar", "continuar", "pronto" | `proximo` | Salva + Valida + Próxima Fase |
|
|
58
|
-
| **VERIFICAR STATUS** | "status", "onde estou", "fase atual" | `status` | Estado completo do projeto |
|
|
59
|
-
| **VALIDAR GATE** | "validar", "posso avançar?", "checklist" | `validar_gate` | Verifica checklist da fase |
|
|
60
|
-
| **RECLASSIFICAR** | "mudar complexidade", "reclassificar" | `classificar` | Reanalisa complexidade |
|
|
61
|
-
| **CONFIRMAR CLASSIFICAÇÃO** | "confirmar", "ok", "classificação correta" | `confirmar_classificacao` | Efetiva nova classificação |
|
|
62
|
-
| **NOVA FEATURE** | "adicionar feature", "nova funcionalidade" | `nova_feature` | Fluxo de feature |
|
|
63
|
-
| **BUG FIX** | "corrigir bug", "resolver erro", "debugging" | `corrigir_bug` | Fluxo de correção |
|
|
64
|
-
| **REFATORAR** | "refatorar", "melhorar código", "reestruturar" | `refatorar` | Fluxo de refatoração |
|
|
65
|
-
| **SALVAR** | "salvar rascunho", "salvar anexo" | `salvar` | Persiste sem avançar |
|
|
66
|
-
| **CONTEXTO** | "contexto", "resumo", "o que temos até agora" | `contexto` | Contexto acumulado |
|
|
48
|
+
> **IMPORTANTE**: Use APENAS estas 5 tools. Tools legadas (v4) ainda funcionam mas emitem deprecation warnings e serão removidas.
|
|
67
49
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## 🤖 SPECIALIST AUTO-LOADING (STEP 2 - AUTO)
|
|
50
|
+
### 1. `maestro` — Entry Point Inteligente 🎯
|
|
71
51
|
|
|
72
|
-
**
|
|
52
|
+
**Quando usar**: Iniciar projeto, ver status, criar projeto
|
|
73
53
|
|
|
74
|
-
|
|
54
|
+
```typescript
|
|
55
|
+
// Ver status do projeto (sem ação = auto-detecta)
|
|
56
|
+
maestro({ diretorio: "/path/to/project" })
|
|
57
|
+
|
|
58
|
+
// Criar novo projeto
|
|
59
|
+
maestro({
|
|
60
|
+
diretorio: "/path/to/project",
|
|
61
|
+
acao: "criar_projeto",
|
|
62
|
+
respostas: { nome: "MeuProjeto", descricao: "Sistema de..." }
|
|
63
|
+
})
|
|
75
64
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
6. Seguir checklist em `.agent/skills/{nome}/resources/checklists/`
|
|
65
|
+
// Setup inicial (IDE, modo)
|
|
66
|
+
maestro({
|
|
67
|
+
diretorio: "/path/to/project",
|
|
68
|
+
acao: "setup_inicial",
|
|
69
|
+
respostas: { ide: "vscode", modo: "balanced" }
|
|
70
|
+
})
|
|
83
71
|
```
|
|
84
72
|
|
|
85
|
-
**
|
|
73
|
+
**Substitui**: `iniciar_projeto`, `confirmar_projeto`, `status`, `carregar_projeto`, `setup_inicial`
|
|
86
74
|
|
|
87
|
-
|
|
88
|
-
// Estado atual
|
|
89
|
-
fase_atual: 1
|
|
90
|
-
nivel_complexidade: "medio"
|
|
91
|
-
|
|
92
|
-
// Fase 1 = Produto → skill = specialist-gestao-produto
|
|
93
|
-
skill_nome: "specialist-gestao-produto"
|
|
94
|
-
skill_path: ".agent/skills/specialist-gestao-produto/"
|
|
75
|
+
---
|
|
95
76
|
|
|
96
|
-
|
|
97
|
-
@specialist-gestao-produto
|
|
77
|
+
### 2. `executar` — Ações no Projeto ⚡
|
|
98
78
|
|
|
99
|
-
|
|
100
|
-
- SKILL.md (descrição e persona)
|
|
101
|
-
- README.md (documentação completa)
|
|
102
|
-
- MCP_INTEGRATION.md (funções MCP disponíveis)
|
|
103
|
-
- resources/templates/PRD.md
|
|
104
|
-
- resources/checklists/prd-validation.md
|
|
105
|
-
- resources/examples/prd-examples.md
|
|
106
|
-
- resources/reference/product-guide.md
|
|
107
|
-
```
|
|
79
|
+
**Quando usar**: Avançar fase, salvar, checkpoints
|
|
108
80
|
|
|
109
|
-
|
|
81
|
+
```typescript
|
|
82
|
+
// Avançar fase com entregável
|
|
83
|
+
executar({
|
|
84
|
+
diretorio: "/path/to/project",
|
|
85
|
+
acao: "avancar", // padrão se omitido
|
|
86
|
+
entregavel: "<conteúdo completo do entregável>"
|
|
87
|
+
})
|
|
110
88
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
6. Frontend → `specialist-desenvolvimento-frontend`
|
|
118
|
-
7. Backend → `specialist-desenvolvimento-backend`
|
|
89
|
+
// Avançar onboarding com respostas
|
|
90
|
+
executar({
|
|
91
|
+
diretorio: "/path/to/project",
|
|
92
|
+
acao: "avancar",
|
|
93
|
+
respostas: { nome_produto: "MeuApp", problema: "..." }
|
|
94
|
+
})
|
|
119
95
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
96
|
+
// Salvar rascunho sem avançar
|
|
97
|
+
executar({
|
|
98
|
+
diretorio: "/path/to/project",
|
|
99
|
+
acao: "salvar",
|
|
100
|
+
conteudo: "...",
|
|
101
|
+
tipo: "rascunho" // "rascunho" | "anexo" | "entregavel"
|
|
102
|
+
})
|
|
127
103
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
104
|
+
// Checkpoint
|
|
105
|
+
executar({
|
|
106
|
+
diretorio: "/path/to/project",
|
|
107
|
+
acao: "checkpoint",
|
|
108
|
+
checkpoint_acao: "criar", // "criar" | "rollback" | "listar"
|
|
109
|
+
reason: "Antes de refatorar"
|
|
110
|
+
})
|
|
111
|
+
```
|
|
132
112
|
|
|
133
|
-
**
|
|
134
|
-
- Prototipagem → `specialist-prototipagem-stitch`
|
|
113
|
+
**Substitui**: `proximo`, `avancar`, `salvar`, `checkpoint`
|
|
135
114
|
|
|
136
|
-
|
|
115
|
+
---
|
|
137
116
|
|
|
138
|
-
|
|
117
|
+
### 3. `validar` — Validações ✅
|
|
139
118
|
|
|
140
|
-
|
|
141
|
-
🎯 **Fase {número}: {nome}**
|
|
142
|
-
🤖 **Skill**: `{nome_skill}`
|
|
143
|
-
📁 **Localização**: `.agent/skills/{nome_skill}/SKILL.md`
|
|
144
|
-
📋 **Entregável**: {entregavel_esperado}
|
|
119
|
+
**Quando usar**: Validar gate, qualidade, compliance
|
|
145
120
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
121
|
+
```typescript
|
|
122
|
+
// Validar gate da fase atual (auto-detecta tipo)
|
|
123
|
+
validar({ diretorio: "/path/to/project" })
|
|
124
|
+
|
|
125
|
+
// Validar entregável específico
|
|
126
|
+
validar({
|
|
127
|
+
diretorio: "/path/to/project",
|
|
128
|
+
tipo: "entregavel",
|
|
129
|
+
entregavel: "<conteúdo>"
|
|
130
|
+
})
|
|
151
131
|
|
|
152
|
-
|
|
132
|
+
// Verificar compliance
|
|
133
|
+
validar({
|
|
134
|
+
diretorio: "/path/to/project",
|
|
135
|
+
tipo: "compliance",
|
|
136
|
+
standard: "LGPD",
|
|
137
|
+
code: "<código para verificar>"
|
|
138
|
+
})
|
|
153
139
|
```
|
|
154
140
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
## TIER 0: REGRAS UNIVERSAIS (Always Active)
|
|
158
|
-
|
|
159
|
-
### 🌐 Language Handling
|
|
141
|
+
**Substitui**: `validar_gate`, `avaliar_entregavel`, `check_compliance`
|
|
160
142
|
|
|
161
|
-
|
|
162
|
-
- **Código**: Variáveis, funções e comentários em inglês
|
|
163
|
-
- **Documentação**: Português (PRD, requisitos) ou inglês (código)
|
|
143
|
+
---
|
|
164
144
|
|
|
165
|
-
###
|
|
145
|
+
### 4. `analisar` — Análises de Código 🔍
|
|
166
146
|
|
|
167
|
-
**
|
|
147
|
+
**Quando usar**: Segurança, qualidade, performance, relatórios
|
|
168
148
|
|
|
169
149
|
```typescript
|
|
170
|
-
//
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
//
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
})
|
|
150
|
+
// Relatório completo (padrão)
|
|
151
|
+
analisar({ diretorio: "/path/to/project" })
|
|
152
|
+
|
|
153
|
+
// Análise específica
|
|
154
|
+
analisar({
|
|
155
|
+
diretorio: "/path/to/project",
|
|
156
|
+
tipo: "seguranca", // "seguranca" | "qualidade" | "performance" | "dependencias" | "completo"
|
|
157
|
+
code: "<código>"
|
|
158
|
+
})
|
|
179
159
|
```
|
|
180
160
|
|
|
181
|
-
**
|
|
182
|
-
- ❌ Assumir estado em memória
|
|
183
|
-
- ❌ Cachear valores entre requests
|
|
184
|
-
- ❌ Confiar em histórico de chat
|
|
185
|
-
- ❌ Chamar tools MCP sem `estado_json`
|
|
161
|
+
**Substitui**: `analisar_seguranca`, `analisar_qualidade`, `analisar_performance`, `gerar_relatorio`
|
|
186
162
|
|
|
187
|
-
|
|
163
|
+
---
|
|
188
164
|
|
|
189
|
-
|
|
165
|
+
### 5. `contexto` — Contexto Acumulado 🧠
|
|
190
166
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
│ └── content/ # Conteúdo interno MCP (templates, prompts, guias)
|
|
197
|
-
├── .agent/
|
|
198
|
-
│ └── skills/ # ⭐ SKILLS LOCAIS (v2.0)
|
|
199
|
-
│ ├── specialist-gestao-produto/
|
|
200
|
-
│ │ ├── SKILL.md
|
|
201
|
-
│ │ ├── README.md
|
|
202
|
-
│ │ ├── MCP_INTEGRATION.md
|
|
203
|
-
│ │ └── resources/
|
|
204
|
-
│ │ ├── templates/
|
|
205
|
-
│ │ ├── examples/
|
|
206
|
-
│ │ ├── checklists/
|
|
207
|
-
│ │ └── reference/
|
|
208
|
-
│ ├── specialist-engenharia-requisitos-ia/
|
|
209
|
-
│ └── ... (outras skills)
|
|
210
|
-
├── docs/
|
|
211
|
-
│ ├── 01-produto/
|
|
212
|
-
│ │ └── PRD.md
|
|
213
|
-
│ ├── 02-requisitos/
|
|
214
|
-
│ │ └── requisitos.md
|
|
215
|
-
│ ├── 03-ux/
|
|
216
|
-
│ │ └── design-doc.md
|
|
217
|
-
│ └── ...
|
|
218
|
-
└── src/
|
|
167
|
+
**Quando usar**: Obter resumo do projeto, decisões, padrões
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
contexto({ diretorio: "/path/to/project" })
|
|
171
|
+
// → Retorna: Stack, modelo, arquitetura, ADRs, gates validados
|
|
219
172
|
```
|
|
220
173
|
|
|
221
|
-
**
|
|
222
|
-
1. Verificar se está seguindo estrutura MCP
|
|
223
|
-
2. Criar diretórios por fase (`docs/{numero}-{nome}/`)
|
|
224
|
-
3. Salvar entregáveis com nomes padronizados
|
|
174
|
+
**Substitui**: `get_context`
|
|
225
175
|
|
|
226
|
-
|
|
176
|
+
---
|
|
227
177
|
|
|
228
|
-
|
|
178
|
+
### Tools Exclusivas do Usuário
|
|
229
179
|
|
|
180
|
+
```typescript
|
|
181
|
+
// ⚠️ NUNCA chame automaticamente — apenas quando o USUÁRIO solicitar
|
|
182
|
+
aprovar_gate({ acao: "aprovar", estado_json: "...", diretorio: "..." })
|
|
230
183
|
```
|
|
231
|
-
1. 🛑 STOP: Não chamar proximo()
|
|
232
|
-
2. 📊 MOSTRAR: Itens pendentes ao usuário
|
|
233
|
-
3. 💡 SUGERIR: Correções baseadas em checklist
|
|
234
|
-
4. ⏸️ AGUARDAR: Aprovação explícita do usuário
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
**Score de Qualidade**:
|
|
238
|
-
- **100**: Todos itens do checklist validados ✅
|
|
239
|
-
- **70-99**: Pode avançar com pendências menores ⚠️
|
|
240
|
-
- **< 70**: **BLOQUEADO** - Requer correção ou aprovação manual 🔴
|
|
241
|
-
|
|
242
|
-
**NUNCA**:
|
|
243
|
-
- ❌ Chamar `aprovar_gate` automaticamente
|
|
244
|
-
- ❌ Usar `forcar: true` sem aprovação explícita
|
|
245
|
-
- ❌ Ignorar gates ou pular validações
|
|
246
|
-
- ❌ Avançar com score < 70 sem confirmação
|
|
247
184
|
|
|
248
|
-
###
|
|
185
|
+
### Tools de Fluxos Alternativos
|
|
249
186
|
|
|
187
|
+
```typescript
|
|
188
|
+
nova_feature({ descricao: "...", impacto_estimado: "medio" })
|
|
189
|
+
corrigir_bug({ descricao: "...", severidade: "alta" })
|
|
190
|
+
refatorar({ area: "...", motivo: "..." })
|
|
250
191
|
```
|
|
251
|
-
❌ ERRADO: Ler especialista → Gerar conteúdo genérico
|
|
252
|
-
✅ CORRETO: Ler → Entender PRINCÍPIOS → Aplicar PERSONA → Gerar
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
**Antes de gerar qualquer entregável, responder**:
|
|
256
|
-
1. Qual é o OBJETIVO desta fase?
|
|
257
|
-
2. Que PRINCÍPIOS o especialista aplica?
|
|
258
|
-
3. Como isso DIFERE de output genérico?
|
|
259
|
-
4. Que TEMPLATE usar?
|
|
260
192
|
|
|
261
193
|
---
|
|
262
194
|
|
|
263
|
-
##
|
|
195
|
+
## 📥 REQUEST CLASSIFIER
|
|
264
196
|
|
|
265
|
-
|
|
197
|
+
**Classificar o request do usuário ANTES de agir:**
|
|
266
198
|
|
|
267
|
-
|
|
199
|
+
| Request | Trigger Keywords | Tool | Ação |
|
|
200
|
+
|---------|-----------------|------|------|
|
|
201
|
+
| **Novo projeto** | "criar projeto", "iniciar", "novo sistema" | `maestro` | `acao: "criar_projeto"` |
|
|
202
|
+
| **Avançar** | "próximo", "terminei", "avançar", "pronto" | `executar` | `acao: "avancar"` |
|
|
203
|
+
| **Status** | "status", "onde estou", "fase atual" | `maestro` | sem ação |
|
|
204
|
+
| **Validar** | "validar", "posso avançar?", "checklist" | `validar` | auto-detecta |
|
|
205
|
+
| **Salvar** | "salvar rascunho", "salvar anexo" | `executar` | `acao: "salvar"` |
|
|
206
|
+
| **Contexto** | "contexto", "resumo", "o que temos" | `contexto` | — |
|
|
207
|
+
| **Nova feature** | "nova funcionalidade", "adicionar" | `nova_feature` | — |
|
|
208
|
+
| **Bug fix** | "corrigir bug", "resolver erro" | `corrigir_bug` | — |
|
|
209
|
+
| **Refatorar** | "refatorar", "reestruturar" | `refatorar` | — |
|
|
268
210
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
| Critério | Como Detectar | Pontos |
|
|
272
|
-
|----------|---------------|--------|
|
|
273
|
-
| **Entidades** | Contar substantivos em Funcionalidades | 1-3 |
|
|
274
|
-
| **Integrações** | Buscar "API", "integração", "serviço externo" | 1-3 |
|
|
275
|
-
| **Segurança** | Palavras: "auth", "LGPD", "compliance", "criptografia" | 1-3 |
|
|
276
|
-
| **Escala** | Números de usuários mencionados (>1k, >10k, >100k) | 1-3 |
|
|
277
|
-
| **Tempo** | Cronograma (>3 meses = mais complexo) | 1-3 |
|
|
278
|
-
| **Regras de Negócio** | Complexidade descrita (workflows, cálculos) | 1-3 |
|
|
279
|
-
|
|
280
|
-
**Resultado da Classificação**:
|
|
281
|
-
- **8-12 pontos** → Simples (7 fases)
|
|
282
|
-
- **13-18 pontos** → Médio (13 fases)
|
|
283
|
-
- **19-24 pontos** → Complexo (17 fases)
|
|
284
|
-
|
|
285
|
-
**Fluxo**:
|
|
286
|
-
```
|
|
287
|
-
Usuário: "próximo" (após PRD)
|
|
288
|
-
↓
|
|
289
|
-
MCP analisa PRD automaticamente
|
|
290
|
-
↓
|
|
291
|
-
MCP sugere: "Detectei 14 pontos → Nível MÉDIO (13 fases)"
|
|
292
|
-
↓
|
|
293
|
-
IA pergunta: "Confirmar classificação ou ajustar?"
|
|
294
|
-
↓
|
|
295
|
-
Usuário confirma
|
|
296
|
-
↓
|
|
297
|
-
MCP confirma classificação e carrega Fase 2
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### 🎭 Stitch Protocol (Opcional)
|
|
211
|
+
---
|
|
301
212
|
|
|
302
|
-
|
|
303
|
-
- ✅ Projeto com UI/UX crítico
|
|
304
|
-
- ✅ Validação de design com stakeholders necessária
|
|
305
|
-
- ✅ Prototipagem rápida desejada
|
|
213
|
+
## 🤖 SKILLS E ESPECIALISTAS
|
|
306
214
|
|
|
307
|
-
|
|
308
|
-
```markdown
|
|
309
|
-
Projeto classificado. Deseja incluir fase de **Prototipagem com Google Stitch**?
|
|
310
|
-
- ✅ Sim → Insere fase após UX Design
|
|
311
|
-
- ❌ Não → Continua fluxo normal
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
**Fluxo com Stitch**:
|
|
315
|
-
```
|
|
316
|
-
Produto(1) → Requisitos(2) → UX Design(3) → Stitch(4) → Modelo(5) → ...
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
**Fase Stitch**:
|
|
320
|
-
- **Especialista**: Prototipagem Rápida com Google Stitch
|
|
321
|
-
- **Template**: `prototipo-stitch`
|
|
322
|
-
- **Entregável**: `prototipos.md` + HTML/CSS exportados
|
|
323
|
-
- **Checklist**:
|
|
324
|
-
- Design Doc aprovado como base
|
|
325
|
-
- Prompts para Stitch gerados
|
|
326
|
-
- Protótipos testados em stitch.withgoogle.com
|
|
327
|
-
- Código exportado e salvo
|
|
328
|
-
|
|
329
|
-
### 🏗️ Frontend-First Protocol
|
|
330
|
-
|
|
331
|
-
**Para features que envolvem Frontend + Backend**:
|
|
332
|
-
|
|
333
|
-
**Regra oficial (obrigatória):**
|
|
334
|
-
- **NUNCA** iniciar FE/BE sem **Contrato API validado + Mock server ativo**
|
|
335
|
-
- **Frontend** só pode consumir **mocks gerados do contrato**
|
|
336
|
-
- **Backend** deve **implementar exatamente o contrato**, sem alterações fora do versionamento
|
|
337
|
-
- **Integração** só inicia após FE + BE concluídos
|
|
338
|
-
|
|
339
|
-
```
|
|
340
|
-
FEAT-001: Criar Pedido
|
|
341
|
-
│
|
|
342
|
-
├── 1. CONT-001 (Contrato API)
|
|
343
|
-
│ ├── Gera: openapi.yaml
|
|
344
|
-
│ ├── Gera: types para Frontend
|
|
345
|
-
│ ├── Gera: types para Backend
|
|
346
|
-
│ └── Gera: Mock Server
|
|
347
|
-
│
|
|
348
|
-
├── 2. US-001-FE (Frontend) ◄── Pode iniciar em paralelo
|
|
349
|
-
│ ├── Dependência: CONT-001 ✅
|
|
350
|
-
│ ├── Desenvolve contra mock
|
|
351
|
-
│ ├── Componentes + hooks + pages
|
|
352
|
-
│ └── Testes de componente
|
|
353
|
-
│
|
|
354
|
-
├── 3. US-001-BE (Backend) ◄── Pode iniciar em paralelo
|
|
355
|
-
│ ├── Dependência: CONT-001 ✅
|
|
356
|
-
│ ├── Implementa contrato
|
|
357
|
-
│ ├── DTOs + entities + services
|
|
358
|
-
│ └── Testes unitários
|
|
359
|
-
│
|
|
360
|
-
└── 4. INT-001 (Integração)
|
|
361
|
-
├── Dependência: US-001-FE ✅
|
|
362
|
-
├── Dependência: US-001-BE ✅
|
|
363
|
-
├── Remove mocks
|
|
364
|
-
├── Conecta FE com BE real
|
|
365
|
-
└── Testes E2E
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
**Validação de Dependências**:
|
|
215
|
+
### Carregamento Automático
|
|
369
216
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
if (historia.tipo === 'frontend' || historia.tipo === 'backend') {
|
|
373
|
-
const contrato = buscarHistoria('contrato');
|
|
374
|
-
if (contrato.status !== 'concluido') {
|
|
375
|
-
return "⛔ BLOQUEADO: Contrato (CONT-XXX) precisa ser concluído primeiro";
|
|
376
|
-
}
|
|
377
|
-
}
|
|
217
|
+
**Ao iniciar cada fase**, o MCP carrega o especialista correto automaticamente.
|
|
218
|
+
A IA DEVE **ler e aplicar** a skill correspondente.
|
|
378
219
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
220
|
+
**Protocolo:**
|
|
221
|
+
```
|
|
222
|
+
1. Ler estado.json → obter fase_atual + skill_name
|
|
223
|
+
2. Localizar skill em .agent/skills/{skill_name}/SKILL.md
|
|
224
|
+
3. Ler SKILL.md para persona + instruções
|
|
225
|
+
4. Consultar resources/templates/ para template do entregável
|
|
226
|
+
5. Consultar resources/checklists/ para critérios de validação
|
|
386
227
|
```
|
|
387
228
|
|
|
388
|
-
###
|
|
229
|
+
### 📁 Estrutura de uma Skill
|
|
389
230
|
|
|
390
|
-
**Nova Feature**:
|
|
391
231
|
```
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
232
|
+
.agent/skills/specialist-gestao-produto/
|
|
233
|
+
├── SKILL.md # Persona + instruções (LER PRIMEIRO)
|
|
234
|
+
├── README.md # Documentação completa
|
|
235
|
+
├── MCP_INTEGRATION.md # Funções MCP disponíveis
|
|
236
|
+
└── resources/
|
|
237
|
+
├── templates/PRD.md # Template do entregável
|
|
238
|
+
├── checklists/ # Critérios de validação
|
|
239
|
+
├── examples/ # Exemplos reais
|
|
240
|
+
└── reference/ # Guias de referência
|
|
401
241
|
```
|
|
402
242
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
↓
|
|
407
|
-
Fases:
|
|
408
|
-
1. Reprodução do Bug
|
|
409
|
-
2. Análise de Causa Raiz
|
|
410
|
-
3. Fix + Testes de Regressão
|
|
411
|
-
4. Deploy
|
|
412
|
-
```
|
|
243
|
+
### 🔧 Resources MCP (Consulta via API)
|
|
244
|
+
|
|
245
|
+
> 💡 **Priorize skills locais** (`.agent/skills/`). Use resources MCP como consulta complementar.
|
|
413
246
|
|
|
414
|
-
**Refatoração**:
|
|
415
247
|
```
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
3. Refatoração Incremental
|
|
422
|
-
4. Validação
|
|
423
|
-
5. Deploy
|
|
248
|
+
maestro://especialista/{nome} # Persona do especialista
|
|
249
|
+
maestro://template/{nome} # Template de documento
|
|
250
|
+
maestro://guia/{nome} # Guia prático
|
|
251
|
+
maestro://prompt/{area}/{nome} # Prompts avançados
|
|
252
|
+
maestro://system-prompt # System prompt do Maestro
|
|
424
253
|
```
|
|
425
254
|
|
|
426
|
-
|
|
255
|
+
**Para consultar**: use `read_resource("maestro://especialista/gestao-produto")`
|
|
427
256
|
|
|
428
|
-
|
|
257
|
+
### Mapeamento Fase → Skill
|
|
429
258
|
|
|
430
|
-
|
|
259
|
+
**Fluxo Simples (7 fases)**:
|
|
260
|
+
1. Produto → `specialist-gestao-produto`
|
|
261
|
+
2. Requisitos → `specialist-engenharia-requisitos-ia`
|
|
262
|
+
3. UX Design → `specialist-ux-design`
|
|
263
|
+
4. Arquitetura → `specialist-arquitetura-software`
|
|
264
|
+
5. Backlog → `specialist-plano-execucao-ia`
|
|
265
|
+
6. Frontend → `specialist-desenvolvimento-frontend`
|
|
266
|
+
7. Backend → `specialist-desenvolvimento-backend`
|
|
431
267
|
|
|
432
|
-
**
|
|
268
|
+
**Fluxo Médio (13 fases)** insere:
|
|
269
|
+
- Modelo de Domínio → `specialist-modelagem-dominio`
|
|
270
|
+
- Banco de Dados → `specialist-banco-dados`
|
|
271
|
+
- Segurança → `specialist-seguranca-informacao`
|
|
272
|
+
- Testes → `specialist-analise-testes`
|
|
273
|
+
- Contrato API → `specialist-contrato-api`
|
|
274
|
+
- Integração → `specialist-devops-infra`
|
|
433
275
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
5. 📋 Usar template correto
|
|
439
|
-
6. ✅ Seguir gate checklist da fase
|
|
276
|
+
**Fluxo Complexo (17 fases)** adiciona:
|
|
277
|
+
- Arquitetura Avançada → `specialist-arquitetura-avancada`
|
|
278
|
+
- Performance → `specialist-performance-escalabilidade`
|
|
279
|
+
- Observabilidade → `specialist-observabilidade`
|
|
440
280
|
|
|
441
|
-
**
|
|
442
|
-
|
|
443
|
-
// Estado atual
|
|
444
|
-
fase_atual: 5
|
|
445
|
-
nivel_complexidade: "medio"
|
|
446
|
-
|
|
447
|
-
// Fluxo médio, fase 5 = Banco de Dados
|
|
448
|
-
especialista: "Banco de Dados"
|
|
449
|
-
template: "design-banco"
|
|
450
|
-
|
|
451
|
-
// Carrega resource
|
|
452
|
-
resource = await fetch('maestro://especialista/banco-de-dados')
|
|
453
|
-
|
|
454
|
-
// Aplica
|
|
455
|
-
- Persona do especialista
|
|
456
|
-
- Instruções específicas
|
|
457
|
-
- Checklist de validação
|
|
458
|
-
```
|
|
459
|
-
|
|
460
|
-
### 📚 Especialistas Disponíveis
|
|
461
|
-
|
|
462
|
-
**Base (todos os fluxos)**:
|
|
463
|
-
- Gestão de Produto
|
|
464
|
-
- Engenharia de Requisitos
|
|
465
|
-
- UX Design
|
|
466
|
-
- Modelagem de Domínio (médio/complexo)
|
|
467
|
-
- Banco de Dados (médio/complexo)
|
|
468
|
-
- Arquitetura de Software
|
|
469
|
-
- Segurança da Informação (médio/complexo)
|
|
470
|
-
- Análise de Testes (médio/complexo)
|
|
471
|
-
- Plano de Execução
|
|
472
|
-
- Contrato de API (médio/complexo)
|
|
473
|
-
- Desenvolvimento Frontend
|
|
474
|
-
- Desenvolvimento Backend
|
|
475
|
-
- DevOps e Infraestrutura (médio/complexo)
|
|
476
|
-
|
|
477
|
-
**Avançados (apenas complexos)**:
|
|
478
|
-
- Arquitetura Avançada (DDD, CQRS, Event Sourcing, Microserviços)
|
|
479
|
-
- Performance e Escalabilidade (Load testing, caching, otimização)
|
|
480
|
-
- Observabilidade (Logs, métricas, tracing distribuído, dashboards)
|
|
481
|
-
|
|
482
|
-
**Complementares**:
|
|
483
|
-
- Prototipagem com Google Stitch (opcional)
|
|
484
|
-
- Dados e Analytics
|
|
485
|
-
- Acessibilidade
|
|
486
|
-
- Debugging e Troubleshooting
|
|
487
|
-
- Documentação Técnica
|
|
488
|
-
- Exploração de Codebase
|
|
489
|
-
- Migração e Modernização
|
|
490
|
-
|
|
491
|
-
### 🎯 Aplicação de Especialistas
|
|
492
|
-
|
|
493
|
-
**Regra de Ouro**: Especialista = Persona + Princípios + Template
|
|
281
|
+
**Stitch (Opcional)** — Inserida após UX Design:
|
|
282
|
+
- Prototipagem → `specialist-prototipagem-stitch`
|
|
494
283
|
|
|
495
|
-
|
|
496
|
-
❌ ERRADO:
|
|
497
|
-
"Vou criar o PRD..."
|
|
498
|
-
[Gera texto genérico]
|
|
284
|
+
### Especialistas Complementares
|
|
499
285
|
|
|
500
|
-
|
|
501
|
-
|
|
286
|
+
Disponíveis sob demanda, fora do fluxo de fases:
|
|
287
|
+
- `specialist-dados-analytics-ia` — Dados e Analytics
|
|
288
|
+
- `specialist-acessibilidade` — Acessibilidade
|
|
289
|
+
- `specialist-debugging-troubleshooting` — Debugging
|
|
290
|
+
- `specialist-documentacao-tecnica` — Documentação
|
|
291
|
+
- `specialist-exploracao-codebase` — Análise de código existente
|
|
292
|
+
- `specialist-migracao-modernizacao` — Modernização de legado
|
|
502
293
|
|
|
503
|
-
|
|
294
|
+
### Regra de Ouro: Persona → Princípios → Template
|
|
504
295
|
|
|
505
|
-
**Template PRD aplicado:**
|
|
506
|
-
1. Problema
|
|
507
|
-
2. Personas
|
|
508
|
-
3. MVP
|
|
509
|
-
4. North Star Metric
|
|
510
|
-
...
|
|
511
296
|
```
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
## TIER 3: GATES ADAPTATIVOS
|
|
516
|
-
|
|
517
|
-
### 🎚️ Tiers de Rigor
|
|
518
|
-
|
|
519
|
-
| Tier | Quando | Foco | Exemplos de Validação |
|
|
520
|
-
|------|--------|------|----------------------|
|
|
521
|
-
| **Essencial** | POC, Script | Funciona? | Código executa, fim |
|
|
522
|
-
| **Base** | Internal, Product simples | Padrão indústria | Testes, lint, segurança básica |
|
|
523
|
-
| **Avançado** | Product complexo | Estado da arte | Arquitetura, observabilidade, compliance |
|
|
524
|
-
|
|
525
|
-
### 🔍 Validação Automática
|
|
526
|
-
|
|
527
|
-
**Cada fase tem checklist específico por tier**:
|
|
528
|
-
|
|
529
|
-
```typescript
|
|
530
|
-
// Exemplo: Fase 1 (Produto)
|
|
531
|
-
gate_checklist_essencial = [
|
|
532
|
-
"Problema claramente definido",
|
|
533
|
-
"MVP com funcionalidades listadas"
|
|
534
|
-
]
|
|
535
|
-
|
|
536
|
-
gate_checklist_base = [
|
|
537
|
-
...gate_checklist_essencial,
|
|
538
|
-
"Personas identificadas",
|
|
539
|
-
"North Star Metric definida"
|
|
540
|
-
]
|
|
541
|
-
|
|
542
|
-
gate_checklist_avancado = [
|
|
543
|
-
...gate_checklist_base,
|
|
544
|
-
"Análise de concorrentes",
|
|
545
|
-
"Business Model Canvas",
|
|
546
|
-
"Roadmap trimestral"
|
|
547
|
-
]
|
|
297
|
+
❌ ERRADO: Ler especialista → Gerar conteúdo genérico
|
|
298
|
+
✅ CORRETO: Ler SKILL.md → Entender PRINCÍPIOS → Aplicar PERSONA → Usar TEMPLATE → Gerar
|
|
548
299
|
```
|
|
549
300
|
|
|
550
|
-
**
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
301
|
+
**Antes de gerar qualquer entregável, validar internamente:**
|
|
302
|
+
1. Qual é o OBJETIVO desta fase?
|
|
303
|
+
2. Que PRINCÍPIOS o especialista aplica?
|
|
304
|
+
3. Que TEMPLATE usar?
|
|
305
|
+
4. Como isso DIFERE de output genérico?
|
|
554
306
|
|
|
555
|
-
|
|
556
|
-
return "✅ Gate aprovado - Todos itens validados"
|
|
557
|
-
}
|
|
558
|
-
else if (score >= 70) {
|
|
559
|
-
return "⚠️ Gate aprovado com pendências - Pode avançar"
|
|
560
|
-
}
|
|
561
|
-
else {
|
|
562
|
-
return "🔴 Gate bloqueado - Necessário corrigir ou aprovar manualmente"
|
|
563
|
-
}
|
|
564
|
-
```
|
|
307
|
+
---
|
|
565
308
|
|
|
566
|
-
|
|
309
|
+
## 🏗️ FLUXO DO PROJETO
|
|
567
310
|
|
|
568
|
-
|
|
311
|
+
### Classificação Automática (após PRD)
|
|
569
312
|
|
|
570
313
|
```
|
|
571
|
-
|
|
314
|
+
Usuário: "próximo" (após PRD)
|
|
572
315
|
↓
|
|
573
|
-
|
|
316
|
+
MCP analisa PRD automaticamente
|
|
574
317
|
↓
|
|
575
|
-
|
|
576
|
-
├─ SIM → Avança automaticamente
|
|
577
|
-
└─ NÃO → BLOQUEIA + mostra pendências
|
|
578
|
-
```
|
|
579
|
-
|
|
580
|
-
**2. Bloqueio (score < 70)**:
|
|
581
|
-
|
|
582
|
-
```markdown
|
|
583
|
-
🔴 **Gate Bloqueado** (Score: {score}/100)
|
|
584
|
-
|
|
585
|
-
**Itens Validados** ✅:
|
|
586
|
-
- [item 1]
|
|
587
|
-
- [item 2]
|
|
588
|
-
|
|
589
|
-
**Itens Pendentes** ❌:
|
|
590
|
-
- [pendência 1]
|
|
591
|
-
- [pendência 2]
|
|
592
|
-
|
|
593
|
-
**Opções**:
|
|
594
|
-
1. Corrigir pendências e validar novamente
|
|
595
|
-
2. Solicitar aprovação manual (justificar)
|
|
596
|
-
```
|
|
597
|
-
|
|
598
|
-
**3. Aprovação Manual**:
|
|
599
|
-
|
|
600
|
-
```
|
|
601
|
-
Usuário: "aprovar mesmo assim porque [justificativa]"
|
|
318
|
+
MCP sugere: "Detectei 14 pontos → Nível MÉDIO (13 fases)"
|
|
602
319
|
↓
|
|
603
|
-
IA
|
|
320
|
+
IA pergunta: "Confirmar classificação ou ajustar?"
|
|
604
321
|
↓
|
|
605
|
-
|
|
322
|
+
Usuário confirma
|
|
606
323
|
↓
|
|
607
|
-
|
|
324
|
+
MCP confirma e carrega Fase 2
|
|
608
325
|
```
|
|
609
326
|
|
|
610
|
-
|
|
327
|
+
| Nível | Fases | Quando |
|
|
328
|
+
|-------|-------|--------|
|
|
329
|
+
| Simples | 7 | POC, MVP, < 2 semanas |
|
|
330
|
+
| Médio | 13 | SaaS simples, 1-3 meses |
|
|
331
|
+
| Complexo | 17 | Multi-tenant, fintech, 3+ meses |
|
|
611
332
|
|
|
612
|
-
|
|
333
|
+
### Stitch (Opcional)
|
|
613
334
|
|
|
614
|
-
|
|
335
|
+
Quando o projeto tem UI/UX crítico:
|
|
336
|
+
```
|
|
337
|
+
Produto → Requisitos → UX Design → **Stitch** → Modelo → ...
|
|
338
|
+
```
|
|
615
339
|
|
|
616
|
-
|
|
340
|
+
### Frontend-First Protocol
|
|
617
341
|
|
|
618
|
-
|
|
619
|
-
// Iniciar novo projeto
|
|
620
|
-
iniciar_projeto(nome, descricao?, diretorio?)
|
|
621
|
-
→ Cria .maestro/, inicia Fase 1, carrega especialista
|
|
342
|
+
**Regra obrigatória para features com Frontend + Backend:**
|
|
622
343
|
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
344
|
+
```
|
|
345
|
+
1. CONT-001 (Contrato API) ← SEMPRE primeiro
|
|
346
|
+
├── openapi.yaml
|
|
347
|
+
├── types para FE/BE
|
|
348
|
+
└── Mock Server
|
|
626
349
|
|
|
627
|
-
|
|
628
|
-
classificar(nivel?, prd?, estado_json, diretorio)
|
|
629
|
-
→ Analisa e sugere nova classificação
|
|
350
|
+
2. FE + BE em paralelo (contra mocks)
|
|
630
351
|
|
|
631
|
-
|
|
632
|
-
confirmar_classificacao(nivel, tipo_artefato?, estado_json, diretorio)
|
|
633
|
-
→ Aplica nova classificação e ajusta fluxo
|
|
352
|
+
3. INT-001 (Integração) ← DEPOIS de FE + BE prontos
|
|
634
353
|
```
|
|
635
354
|
|
|
636
|
-
|
|
355
|
+
- ❌ NUNCA iniciar FE/BE sem contrato API validado
|
|
356
|
+
- ❌ NUNCA conectar FE com BE real sem ambos concluídos
|
|
637
357
|
|
|
638
|
-
|
|
639
|
-
// Avançar fase (salva + valida + próxima)
|
|
640
|
-
proximo(entregavel, estado_json, diretorio, forcar?, nome_arquivo?)
|
|
641
|
-
→ Persiste, valida gate, carrega próxima fase
|
|
358
|
+
---
|
|
642
359
|
|
|
643
|
-
|
|
644
|
-
validar_gate(estado_json, diretorio, fase?, entregavel?)
|
|
645
|
-
→ Retorna score e checklist
|
|
360
|
+
## 🛑 GATES ADAPTATIVOS
|
|
646
361
|
|
|
647
|
-
|
|
648
|
-
aprovar_gate(acao: "aprovar" | "rejeitar", estado_json, diretorio)
|
|
649
|
-
→ Força avanço ou cancela
|
|
650
|
-
```
|
|
362
|
+
### Tiers de Rigor
|
|
651
363
|
|
|
652
|
-
|
|
364
|
+
| Tier | Quando | O que valida |
|
|
365
|
+
|------|--------|-------------|
|
|
366
|
+
| **Essencial** | POC, Script | Funciona? |
|
|
367
|
+
| **Base** | Internal, Product | Padrão indústria |
|
|
368
|
+
| **Avançado** | Product complexo | Estado da arte |
|
|
653
369
|
|
|
654
|
-
|
|
655
|
-
// Status completo
|
|
656
|
-
status(estado_json, diretorio)
|
|
657
|
-
→ Projeto, fase, gates, métricas
|
|
658
|
-
|
|
659
|
-
// Contexto acumulado
|
|
660
|
-
contexto(estado_json, diretorio)
|
|
661
|
-
→ Resumo + stack + modelo + arquitetura
|
|
370
|
+
### Protocolo de Gates
|
|
662
371
|
|
|
663
|
-
// Carregar projeto existente
|
|
664
|
-
carregar_projeto(estado_json, diretorio)
|
|
665
|
-
→ Retoma sessão
|
|
666
372
|
```
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
→ Persiste em docs/ ou .maestro/rascunhos/
|
|
373
|
+
executar({ acao: "avancar", entregavel: "..." })
|
|
374
|
+
↓
|
|
375
|
+
Validação automática (score 0-100)
|
|
376
|
+
↓
|
|
377
|
+
≥ 70 → Avança ✅
|
|
378
|
+
< 70 → BLOQUEADO 🔴 (mostra pendências)
|
|
674
379
|
```
|
|
675
380
|
|
|
676
|
-
**
|
|
381
|
+
**Quando bloqueado:**
|
|
382
|
+
1. Mostrar itens pendentes ao usuário
|
|
383
|
+
2. Sugerir correções baseadas no checklist
|
|
384
|
+
3. **AGUARDAR** aprovação explícita
|
|
385
|
+
4. ❌ NUNCA chamar `aprovar_gate` automaticamente
|
|
677
386
|
|
|
387
|
+
**Aprovação manual** (apenas quando o USUÁRIO solicitar):
|
|
678
388
|
```typescript
|
|
679
|
-
|
|
680
|
-
nova_feature(descricao, impacto_estimado?)
|
|
681
|
-
→ Inicia fluxo de 6 fases
|
|
682
|
-
|
|
683
|
-
// Corrigir bug
|
|
684
|
-
corrigir_bug(descricao, severidade?)
|
|
685
|
-
→ Inicia fluxo de debugging
|
|
686
|
-
|
|
687
|
-
// Refatorar
|
|
688
|
-
refatorar(area, motivo)
|
|
689
|
-
→ Inicia fluxo de refatoração
|
|
389
|
+
aprovar_gate({ acao: "aprovar", estado_json: "...", diretorio: "..." })
|
|
690
390
|
```
|
|
691
391
|
|
|
692
|
-
###
|
|
693
|
-
|
|
694
|
-
**SEMPRE passar `estado_json` e `diretorio`**:
|
|
695
|
-
|
|
696
|
-
```typescript
|
|
697
|
-
// ❌ ERRADO
|
|
698
|
-
await mcp_maestro_proximo({
|
|
699
|
-
entregavel: "..."
|
|
700
|
-
})
|
|
392
|
+
### Limite de Retries
|
|
701
393
|
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
entregavel: "...",
|
|
706
|
-
estado_json: estadoJson,
|
|
707
|
-
diretorio: process.cwd()
|
|
708
|
-
})
|
|
709
|
-
```
|
|
394
|
+
Após **3 tentativas** de validação sem atingir score mínimo:
|
|
395
|
+
- Apresentar opções ao usuário (aprovar, editar, ou re-tentar)
|
|
396
|
+
- ❌ NUNCA ficar em loop infinito de validação
|
|
710
397
|
|
|
711
398
|
---
|
|
712
399
|
|
|
713
|
-
##
|
|
714
|
-
|
|
715
|
-
### Gatilhos de Comando
|
|
716
|
-
|
|
717
|
-
**Avanço**:
|
|
718
|
-
- "próximo", "avançar", "continuar"
|
|
719
|
-
- "terminei", "pronto", "finalizado"
|
|
720
|
-
- "pode salvar", "está bom"
|
|
721
|
-
|
|
722
|
-
**Validação**:
|
|
723
|
-
- "validar", "posso avançar?", "checklist"
|
|
724
|
-
- "gate", "verificar"
|
|
400
|
+
## 🌐 REGRAS UNIVERSAIS
|
|
725
401
|
|
|
726
|
-
|
|
727
|
-
-
|
|
728
|
-
-
|
|
402
|
+
### Idioma
|
|
403
|
+
- **Respostas**: Sempre em português do Brasil
|
|
404
|
+
- **Código**: Variáveis, funções e comentários em inglês
|
|
405
|
+
- **Documentação**: Português (PRD, requisitos) ou inglês (código)
|
|
729
406
|
|
|
730
407
|
### Estrutura de Arquivos
|
|
731
408
|
|
|
732
409
|
```
|
|
733
410
|
projeto/
|
|
734
411
|
├── .maestro/
|
|
735
|
-
│ ├── estado.json
|
|
736
|
-
│ ├── resumo.json
|
|
737
|
-
│
|
|
412
|
+
│ ├── estado.json # ⭐ FONTE DA VERDADE
|
|
413
|
+
│ ├── resumo.json # Cache de contexto
|
|
414
|
+
│ ├── entregaveis/ # Drafts salvos
|
|
415
|
+
│ └── rascunhos/ # Salvamentos temporários
|
|
416
|
+
├── .agent/
|
|
417
|
+
│ └── skills/ # ⭐ SKILLS LOCAIS
|
|
418
|
+
│ ├── specialist-gestao-produto/
|
|
419
|
+
│ ├── specialist-engenharia-requisitos-ia/
|
|
420
|
+
│ └── ...
|
|
738
421
|
├── docs/
|
|
739
|
-
│ ├── 01-produto/
|
|
740
|
-
│ ├── 02-requisitos/
|
|
422
|
+
│ ├── 01-produto/PRD.md
|
|
423
|
+
│ ├── 02-requisitos/requisitos.md
|
|
424
|
+
│ ├── 03-ux/design-doc.md
|
|
741
425
|
│ └── ...
|
|
742
426
|
└── src/
|
|
743
427
|
```
|
|
744
428
|
|
|
745
|
-
###
|
|
429
|
+
### Dados do Usuário
|
|
746
430
|
|
|
747
431
|
```
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
maestro://guia/{nome} # Guias práticos
|
|
751
|
-
maestro://prompt/{area}/{nome} # Prompts avançados
|
|
752
|
-
maestro://system-prompt # System prompt completo
|
|
432
|
+
❌ ERRADO: Inventar dados, métricas ou números
|
|
433
|
+
✅ CORRETO: Perguntar ao usuário e usar respostas REAIS
|
|
753
434
|
```
|
|
754
435
|
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|-------|-------|-------------|
|
|
759
|
-
| Simples | 7 | POC, MVP, < 2 semanas |
|
|
760
|
-
| Médio | 13 | SaaS simples, 1-3 meses |
|
|
761
|
-
| Complexo | 17 | Multi-tenant, fintech, 3+ meses |
|
|
762
|
-
|
|
763
|
-
### Tiers de Gates
|
|
764
|
-
|
|
765
|
-
| Tier | Projeto | Rigor |
|
|
766
|
-
|------|---------|-------|
|
|
767
|
-
| Essencial | POC, Script | Funciona? |
|
|
768
|
-
| Base | Internal, Product | Padrão indústria |
|
|
769
|
-
| Avançado | Product complexo | Estado da arte |
|
|
436
|
+
Se o usuário pedir "invente" ou "crie dados":
|
|
437
|
+
→ Responder: "Preciso que VOCÊ me conte. Seus dados reais geram um resultado muito melhor."
|
|
438
|
+
→ Oferecer exemplos para inspirar, mas NÃO usar como resposta
|
|
770
439
|
|
|
771
440
|
---
|
|
772
441
|
|
|
773
|
-
## 🎓
|
|
442
|
+
## 🎓 EXEMPLOS
|
|
774
443
|
|
|
775
444
|
### Exemplo 1: Iniciar Projeto
|
|
776
445
|
|
|
@@ -778,20 +447,16 @@ maestro://system-prompt # System prompt completo
|
|
|
778
447
|
User: "Quero criar um sistema de gestão de pedidos para restaurante"
|
|
779
448
|
|
|
780
449
|
AI:
|
|
781
|
-
🎯
|
|
782
|
-
|
|
783
|
-
Vou iniciar o projeto. Qual o nome?
|
|
450
|
+
🎯 Vou iniciar o projeto MCP Maestro.
|
|
784
451
|
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
AI: [chama iniciar_projeto]
|
|
452
|
+
[chama maestro({ acao: "criar_projeto", respostas: { nome: "RestaurantePro", descricao: "..." } })]
|
|
788
453
|
|
|
789
454
|
🎯 **Projeto Iniciado**
|
|
790
455
|
📁 Diretório: ./RestaurantePro
|
|
791
456
|
📋 Fase 1: Produto
|
|
792
457
|
🤖 Especialista: Gestão de Produto
|
|
793
458
|
|
|
794
|
-
|
|
459
|
+
Como Product Manager, preciso entender:
|
|
795
460
|
1. Qual problema específico estamos resolvendo?
|
|
796
461
|
2. Quem são os usuários principais?
|
|
797
462
|
3. Quais funcionalidades do MVP?
|
|
@@ -803,33 +468,18 @@ Vamos começar pelo PRD. Como Product Manager, preciso entender:
|
|
|
803
468
|
User: "Pronto, terminei o PRD"
|
|
804
469
|
|
|
805
470
|
AI: [lê estado.json]
|
|
806
|
-
|
|
807
|
-
Excelente! Vou salvar e validar o PRD.
|
|
808
|
-
|
|
809
|
-
[chama proximo(entregavel: "conteúdo do PRD", estado_json, diretorio)]
|
|
471
|
+
[chama executar({ acao: "avancar", entregavel: "<PRD completo>" })]
|
|
810
472
|
|
|
811
473
|
✅ **PRD Salvo**: docs/01-produto/PRD.md
|
|
812
474
|
|
|
813
|
-
📊 **Classificação
|
|
814
|
-
- Entidades detectadas: 5 (Pedido, Mesa, Cliente, Produto, Pagamento)
|
|
815
|
-
- Integrações: API Pagamento (1)
|
|
816
|
-
- Segurança: Auth mencionada (1)
|
|
817
|
-
- Escala: ~50 usuários (1)
|
|
818
|
-
- **Total: 14 pontos → Nível MÉDIO (13 fases)**
|
|
819
|
-
|
|
475
|
+
📊 **Classificação**: 14 pontos → Nível MÉDIO (13 fases)
|
|
820
476
|
Confirmar classificação?
|
|
821
477
|
|
|
822
|
-
User: "Sim
|
|
823
|
-
|
|
824
|
-
AI: [chama confirmar_classificacao]
|
|
825
|
-
|
|
826
|
-
✅ **Classificação Confirmada**
|
|
478
|
+
User: "Sim"
|
|
479
|
+
[chama confirmar_classificacao(...)]
|
|
827
480
|
|
|
828
481
|
🎯 **Fase 2: Requisitos**
|
|
829
|
-
🤖
|
|
830
|
-
📋 **Entregável**: requisitos.md
|
|
831
|
-
|
|
832
|
-
Como Engenheiro de Requisitos, vou elaborar...
|
|
482
|
+
🤖 Especialista: Engenharia de Requisitos
|
|
833
483
|
```
|
|
834
484
|
|
|
835
485
|
### Exemplo 3: Gate Bloqueado
|
|
@@ -837,21 +487,15 @@ Como Engenheiro de Requisitos, vou elaborar...
|
|
|
837
487
|
```markdown
|
|
838
488
|
User: "Próximo"
|
|
839
489
|
|
|
840
|
-
AI: [chama
|
|
490
|
+
AI: [chama executar({ acao: "avancar", entregavel: "..." })]
|
|
841
491
|
|
|
842
492
|
🔴 **Gate Bloqueado** (Score: 60/100)
|
|
843
493
|
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
- Requisitos não-funcionais definidos
|
|
847
|
-
|
|
848
|
-
**Itens Pendentes** ❌:
|
|
849
|
-
- Critérios de aceite em Gherkin
|
|
850
|
-
- Matriz de rastreabilidade iniciada
|
|
494
|
+
✅ Requisitos funcionais com IDs
|
|
495
|
+
✅ Requisitos não-funcionais
|
|
851
496
|
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
2. Criar tabela RF → User Story
|
|
497
|
+
❌ Critérios de aceite em Gherkin
|
|
498
|
+
❌ Matriz de rastreabilidade
|
|
855
499
|
|
|
856
500
|
Deseja corrigir ou aprovar mesmo assim?
|
|
857
501
|
```
|
|
@@ -860,34 +504,35 @@ Deseja corrigir ou aprovar mesmo assim?
|
|
|
860
504
|
|
|
861
505
|
## 🔧 TROUBLESHOOTING
|
|
862
506
|
|
|
863
|
-
|
|
507
|
+
| Problema | Causa | Solução |
|
|
508
|
+
|----------|-------|---------|
|
|
509
|
+
| Tool retorna erro | Faltou `estado_json` | Ler `.maestro/estado.json` primeiro |
|
|
510
|
+
| Especialista errado | Não verificou `fase_atual` | Checar estado.json antes de carregar |
|
|
511
|
+
| Gate sempre falhando | Entregável vazio ou mal formatado | Salvar como arquivo + validar `docs/{fase}/` |
|
|
512
|
+
| Score PRD 15/100 | Newlines escapados de JSON | MCP normaliza automaticamente |
|
|
513
|
+
| Loop infinito | Retry sem limite | Limite de 3 retries |
|
|
514
|
+
|
|
515
|
+
---
|
|
864
516
|
|
|
865
|
-
|
|
517
|
+
## 📋 QUICK REFERENCE
|
|
866
518
|
|
|
867
|
-
|
|
868
|
-
```typescript
|
|
869
|
-
const estadoJson = await fs.readFile('.maestro/estado.json', 'utf-8');
|
|
870
|
-
// Passar em TODOS os tools
|
|
871
|
-
```
|
|
519
|
+
### Comando → Tool
|
|
872
520
|
|
|
873
|
-
|
|
521
|
+
| Usuário diz | Tool | Args |
|
|
522
|
+
|-------------|------|------|
|
|
523
|
+
| "criar projeto" | `maestro` | `acao: "criar_projeto"` |
|
|
524
|
+
| "próximo" / "avançar" | `executar` | `acao: "avancar"` |
|
|
525
|
+
| "status" | `maestro` | — |
|
|
526
|
+
| "validar" | `validar` | — |
|
|
527
|
+
| "salvar" | `executar` | `acao: "salvar"` |
|
|
528
|
+
| "contexto" | `contexto` | — |
|
|
529
|
+
| "analisar" | `analisar` | — |
|
|
874
530
|
|
|
875
|
-
|
|
531
|
+
### Parâmetro Obrigatório
|
|
876
532
|
|
|
877
|
-
**Solução**:
|
|
878
533
|
```typescript
|
|
879
|
-
|
|
880
|
-
|
|
534
|
+
// Em TODAS as tools, SEMPRE passar:
|
|
535
|
+
{ diretorio: "/caminho/absoluto/do/projeto" }
|
|
881
536
|
```
|
|
882
537
|
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
**Causa**: Checklist muito rigoroso para o tier
|
|
886
|
-
|
|
887
|
-
**Solução**: Verificar `tier_gate` do projeto e ajustar critérios
|
|
888
|
-
|
|
889
|
-
---
|
|
890
|
-
|
|
891
|
-
**Versão**: 1.0.0
|
|
892
|
-
**Última Atualização**: 2026-01-23
|
|
893
|
-
**Sistema**: MCP Maestro
|
|
538
|
+
O `estado_json` é opcional (carrega automaticamente), mas recomendado para performance.
|