@onion-architect-ai/cli 4.1.0-beta.4 → 4.1.0-beta.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/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/.cursor/agents/development/c4-architecture-specialist.md +712 -0
- package/templates/.cursor/agents/development/c4-documentation-specialist.md +658 -0
- package/templates/.cursor/agents/development/clickup-specialist.md +397 -0
- package/templates/.cursor/agents/development/cursor-specialist.md +249 -0
- package/templates/.cursor/agents/development/docs-reverse-engineer.md +418 -0
- package/templates/.cursor/agents/development/gamma-api-specialist.md +1169 -0
- package/templates/.cursor/agents/development/gitflow-specialist.md +1207 -0
- package/templates/.cursor/agents/development/linux-security-specialist.md +676 -0
- package/templates/.cursor/agents/development/mermaid-specialist.md +516 -0
- package/templates/.cursor/agents/development/nodejs-specialist.md +673 -0
- package/templates/.cursor/agents/development/nx-migration-specialist.md +867 -0
- package/templates/.cursor/agents/development/nx-monorepo-specialist.md +619 -0
- package/templates/.cursor/agents/development/postgres-specialist.md +1124 -0
- package/templates/.cursor/agents/development/react-developer.md +132 -0
- package/templates/.cursor/agents/development/runflow-specialist.md +278 -0
- package/templates/.cursor/agents/development/system-documentation-orchestrator.md +1388 -0
- package/templates/.cursor/agents/development/task-specialist.md +618 -0
- package/templates/.cursor/agents/development/whisper-specialist.md +373 -0
- package/templates/.cursor/agents/development/zen-engine-specialist.md +421 -0
- package/templates/.cursor/agents/git/branch-code-reviewer.md +200 -0
- package/templates/.cursor/agents/git/branch-documentation-writer.md +162 -0
- package/templates/.cursor/agents/git/branch-metaspec-checker.md +68 -0
- package/templates/.cursor/agents/git/branch-test-planner.md +177 -0
- package/templates/.cursor/agents/product/branding-positioning-specialist.md +1030 -0
- package/templates/.cursor/agents/product/extract-meeting-specialist.md +395 -0
- package/templates/.cursor/agents/product/meeting-consolidator.md +483 -0
- package/templates/.cursor/agents/product/pain-price-specialist.md +509 -0
- package/templates/.cursor/agents/product/presentation-orchestrator.md +1191 -0
- package/templates/.cursor/agents/product/product-agent.md +202 -0
- package/templates/.cursor/agents/product/story-points-framework-specialist.md +539 -0
- package/templates/.cursor/agents/product/storytelling-business-specialist.md +891 -0
- package/templates/.cursor/agents/review/code-reviewer.md +155 -0
- package/templates/.cursor/agents/testing/test-agent.md +425 -0
- package/templates/.cursor/agents/testing/test-engineer.md +295 -0
- package/templates/.cursor/agents/testing/test-planner.md +118 -0
- package/templates/.cursor/commands/docs/build-business-docs.md +276 -0
- package/templates/.cursor/commands/docs/build-index.md +128 -0
- package/templates/.cursor/commands/docs/build-tech-docs.md +204 -0
- package/templates/.cursor/commands/docs/consolidate-documents.md +424 -0
- package/templates/.cursor/commands/docs/docs-health.md +142 -0
- package/templates/.cursor/commands/docs/help.md +306 -0
- package/templates/.cursor/commands/docs/refine-vision.md +27 -0
- package/templates/.cursor/commands/docs/reverse-consolidate.md +160 -0
- package/templates/.cursor/commands/docs/sync-sessions.md +320 -0
- package/templates/.cursor/commands/docs/validate-docs.md +159 -0
- package/templates/.cursor/commands/engineer/bump.md +43 -0
- package/templates/.cursor/commands/engineer/docs.md +39 -0
- package/templates/.cursor/commands/engineer/help.md +329 -0
- package/templates/.cursor/commands/engineer/hotfix.md +186 -0
- package/templates/.cursor/commands/engineer/plan.md +111 -0
- package/templates/.cursor/commands/engineer/pr-update.md +198 -0
- package/templates/.cursor/commands/engineer/pr.md +136 -0
- package/templates/.cursor/commands/engineer/pre-pr.md +91 -0
- package/templates/.cursor/commands/engineer/start.md +266 -0
- package/templates/.cursor/commands/engineer/validate-phase-sync.md +118 -0
- package/templates/.cursor/commands/engineer/warm-up.md +173 -0
- package/templates/.cursor/commands/engineer/work.md +169 -0
- package/templates/.cursor/commands/git/code-review.md +215 -0
- package/templates/.cursor/commands/git/fast-commit.md +45 -0
- package/templates/.cursor/commands/git/feature/finish.md +90 -0
- package/templates/.cursor/commands/git/feature/publish.md +91 -0
- package/templates/.cursor/commands/git/feature/start.md +158 -0
- package/templates/.cursor/commands/git/help.md +306 -0
- package/templates/.cursor/commands/git/hotfix/finish.md +98 -0
- package/templates/.cursor/commands/git/hotfix/start.md +94 -0
- package/templates/.cursor/commands/git/init.md +139 -0
- package/templates/.cursor/commands/git/release/finish.md +98 -0
- package/templates/.cursor/commands/git/release/start.md +95 -0
- package/templates/.cursor/commands/git/sync.md +228 -0
- package/templates/.cursor/commands/global/help.md +388 -0
- package/templates/.cursor/commands/product/analyze-pain-price.md +709 -0
- package/templates/.cursor/commands/product/branding.md +460 -0
- package/templates/.cursor/commands/product/check.md +48 -0
- package/templates/.cursor/commands/product/checklist-sync.md +241 -0
- package/templates/.cursor/commands/product/collect.md +96 -0
- package/templates/.cursor/commands/product/consolidate-meetings.md +306 -0
- package/templates/.cursor/commands/product/convert-to-tasks.md +220 -0
- package/templates/.cursor/commands/product/estimate.md +519 -0
- package/templates/.cursor/commands/product/extract-meeting.md +241 -0
- package/templates/.cursor/commands/product/feature.md +431 -0
- package/templates/.cursor/commands/product/help.md +212 -0
- package/templates/.cursor/commands/product/light-arch.md +97 -0
- package/templates/.cursor/commands/product/presentation.md +189 -0
- package/templates/.cursor/commands/product/refine.md +186 -0
- package/templates/.cursor/commands/product/spec.md +107 -0
- package/templates/.cursor/commands/product/task-check.md +340 -0
- package/templates/.cursor/commands/product/task.md +585 -0
- package/templates/.cursor/commands/product/transform-consolidated.md +592 -0
- package/templates/.cursor/commands/product/validate-task.md +294 -0
- package/templates/.cursor/commands/product/warm-up.md +187 -0
- package/templates/.cursor/commands/product/whisper.md +325 -0
- package/templates/.cursor/commands/test/e2e.md +392 -0
- package/templates/.cursor/commands/test/integration.md +523 -0
- package/templates/.cursor/commands/test/unit.md +378 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: whisper
|
|
3
|
+
description: |
|
|
4
|
+
Facilita o uso eficiente do agente Whisper para transcrição de áudio.
|
|
5
|
+
Detecta necessidade do usuário e delega para @whisper-specialist com contexto otimizado.
|
|
6
|
+
model: sonnet
|
|
7
|
+
|
|
8
|
+
parameters:
|
|
9
|
+
- name: query
|
|
10
|
+
description: Sua pergunta ou necessidade (instalação, uso, troubleshooting, workflow)
|
|
11
|
+
required: false
|
|
12
|
+
- name: audio_file
|
|
13
|
+
description: Arquivo de áudio para transcrever (opcional)
|
|
14
|
+
required: false
|
|
15
|
+
- name: platform
|
|
16
|
+
description: Plataforma (windows/linux/macos) para comandos específicos
|
|
17
|
+
required: false
|
|
18
|
+
|
|
19
|
+
category: product
|
|
20
|
+
tags:
|
|
21
|
+
- whisper
|
|
22
|
+
- transcription
|
|
23
|
+
- audio-processing
|
|
24
|
+
- meeting-processing
|
|
25
|
+
|
|
26
|
+
version: "4.0.0"
|
|
27
|
+
updated: "2025-12-20"
|
|
28
|
+
|
|
29
|
+
related_commands:
|
|
30
|
+
- /product/extract-meeting
|
|
31
|
+
- /product/consolidate-meetings
|
|
32
|
+
- /product/convert-to-tasks
|
|
33
|
+
|
|
34
|
+
related_agents:
|
|
35
|
+
- whisper-specialist
|
|
36
|
+
- extract-meeting-specialist
|
|
37
|
+
level: intermediate
|
|
38
|
+
context: business
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
# 🎤 Whisper - Transcrição de Áudio
|
|
42
|
+
|
|
43
|
+
Comando facilitador para usar o agente @whisper-specialist com eficiência máxima.
|
|
44
|
+
|
|
45
|
+
## 🎯 Objetivo
|
|
46
|
+
|
|
47
|
+
Facilitar o uso do Whisper para transcrição de áudio, integrando com workflows do Sistema Onion:
|
|
48
|
+
- Detectar necessidade do usuário automaticamente
|
|
49
|
+
- Delegar para @whisper-specialist com contexto otimizado
|
|
50
|
+
- Conectar com workflow completo de processamento de reuniões
|
|
51
|
+
- Fornecer comandos prontos para uso
|
|
52
|
+
|
|
53
|
+
## ⚡ Fluxo de Execução
|
|
54
|
+
|
|
55
|
+
### Passo 1: Detectar Necessidade do Usuário
|
|
56
|
+
|
|
57
|
+
Analisar `{{query}}` e `{{audio_file}}` para identificar necessidade:
|
|
58
|
+
|
|
59
|
+
**SE `{{audio_file}}` fornecido:**
|
|
60
|
+
- Necessidade: Transcrever arquivo específico
|
|
61
|
+
- Ação: Preparar comando Whisper otimizado
|
|
62
|
+
|
|
63
|
+
**SE `{{query}}` contém palavras-chave:**
|
|
64
|
+
- "instalar", "setup", "configurar" → Instalação
|
|
65
|
+
- "usar", "transcrever", "processar" → Uso
|
|
66
|
+
- "erro", "problema", "não funciona" → Troubleshooting
|
|
67
|
+
- "workflow", "integração", "sistema onion" → Workflow completo
|
|
68
|
+
|
|
69
|
+
**SE nenhum parâmetro:**
|
|
70
|
+
- Mostrar ajuda geral e opções disponíveis
|
|
71
|
+
|
|
72
|
+
### Passo 2: Delegar para @whisper-specialist
|
|
73
|
+
|
|
74
|
+
Invocar agente com contexto otimizado:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
@whisper-specialist
|
|
78
|
+
|
|
79
|
+
{{query_completa_com_contexto}}
|
|
80
|
+
|
|
81
|
+
**Contexto Adicional:**
|
|
82
|
+
- Plataforma: {{platform}} (se fornecido)
|
|
83
|
+
- Arquivo de áudio: {{audio_file}} (se fornecido)
|
|
84
|
+
- Necessidade detectada: {{necessidade_detectada}}
|
|
85
|
+
|
|
86
|
+
**Por favor, forneça:**
|
|
87
|
+
- Comandos específicos para a plataforma
|
|
88
|
+
- Explicação clara dos passos
|
|
89
|
+
- Validação e testes
|
|
90
|
+
- Próximos passos no workflow (se aplicável)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Passo 3: Integrar com Workflow do Sistema Onion
|
|
94
|
+
|
|
95
|
+
**SE transcrição foi realizada:**
|
|
96
|
+
|
|
97
|
+
Apresentar workflow completo:
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
101
|
+
✅ TRANSCRIÇÃO CONCLUÍDA
|
|
102
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
103
|
+
|
|
104
|
+
📄 **Arquivo transcrito:** {{arquivo_txt}}
|
|
105
|
+
|
|
106
|
+
🔗 **Próximos passos no Sistema Onion:**
|
|
107
|
+
|
|
108
|
+
1. Extrair conhecimento estruturado:
|
|
109
|
+
/product/extract-meeting source={{arquivo_txt}} level=executive
|
|
110
|
+
|
|
111
|
+
2. Consolidar múltiplas reuniões:
|
|
112
|
+
/product/consolidate-meetings source=docs/meet/
|
|
113
|
+
|
|
114
|
+
3. Converter em tasks:
|
|
115
|
+
/product/convert-to-tasks source=docs/meet/consolidation-*.md
|
|
116
|
+
|
|
117
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## 📤 Output Esperado
|
|
121
|
+
|
|
122
|
+
### Para Instalação
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
126
|
+
🔧 INSTALAÇÃO WHISPER - {{platform}}
|
|
127
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
128
|
+
|
|
129
|
+
📋 **Comandos para executar:**
|
|
130
|
+
|
|
131
|
+
{{comandos_específicos_da_plataforma}}
|
|
132
|
+
|
|
133
|
+
✅ **Validação:**
|
|
134
|
+
{{comando_de_teste}}
|
|
135
|
+
|
|
136
|
+
💡 **Dica:** Use @whisper-specialist para ajuda detalhada
|
|
137
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Para Transcrição
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
144
|
+
🎤 COMANDO WHISPER OTIMIZADO
|
|
145
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
146
|
+
|
|
147
|
+
📋 **Comando recomendado:**
|
|
148
|
+
{{comando_completo_otimizado}}
|
|
149
|
+
|
|
150
|
+
📊 **Parâmetros:**
|
|
151
|
+
∟ Modelo: {{modelo_recomendado}}
|
|
152
|
+
∟ Idioma: pt (português)
|
|
153
|
+
∟ Formato: txt (para Sistema Onion)
|
|
154
|
+
∟ GPU: {{device}} (se disponível)
|
|
155
|
+
|
|
156
|
+
🔗 **Próximo passo:**
|
|
157
|
+
/product/extract-meeting source={{arquivo_txt}}
|
|
158
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Para Troubleshooting
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
165
|
+
🔧 SOLUÇÃO IDENTIFICADA
|
|
166
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
167
|
+
|
|
168
|
+
⚠️ **Problema:** {{problema_identificado}}
|
|
169
|
+
|
|
170
|
+
✅ **Solução:**
|
|
171
|
+
{{solução_detalhada}}
|
|
172
|
+
|
|
173
|
+
📋 **Comandos para executar:**
|
|
174
|
+
{{comandos_de_solução}}
|
|
175
|
+
|
|
176
|
+
💡 **Prevenção:**
|
|
177
|
+
{{dicas_para_evitar_problema}}
|
|
178
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## 🎯 Casos de Uso
|
|
182
|
+
|
|
183
|
+
### Caso 1: Instalação
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# Detectar plataforma automaticamente ou especificar
|
|
187
|
+
/product/whisper "Como instalar Whisper?" platform=linux
|
|
188
|
+
|
|
189
|
+
# Ou deixar detectar automaticamente
|
|
190
|
+
/product/whisper "Preciso instalar Whisper no Ubuntu"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Caso 2: Transcrição Simples
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# Transcrever arquivo específico
|
|
197
|
+
/product/whisper audio_file=reuniao.mp3
|
|
198
|
+
|
|
199
|
+
# Com pergunta específica
|
|
200
|
+
/product/whisper "Qual melhor modelo para português?" audio_file=reuniao.mp3
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Caso 3: Workflow Completo
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# 1. Transcrever
|
|
207
|
+
/product/whisper audio_file=reuniao-28-nov.m4a
|
|
208
|
+
|
|
209
|
+
# 2. Extrair conhecimento (comando gerado automaticamente)
|
|
210
|
+
/product/extract-meeting source=reuniao-28-nov.txt
|
|
211
|
+
|
|
212
|
+
# 3. Consolidar e converter (workflow completo)
|
|
213
|
+
/product/consolidate-meetings source=docs/meet/
|
|
214
|
+
/product/convert-to-tasks source=docs/meet/consolidation-*.md
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Caso 4: Troubleshooting
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Problema específico
|
|
221
|
+
/product/whisper "FFmpeg não encontrado no Windows"
|
|
222
|
+
|
|
223
|
+
# Erro de GPU
|
|
224
|
+
/product/whisper "GPU não detectada" platform=linux
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Caso 5: Ajuda Geral
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Sem parâmetros - mostra ajuda
|
|
231
|
+
/product/whisper
|
|
232
|
+
|
|
233
|
+
# Pergunta geral
|
|
234
|
+
/product/whisper "Como usar Whisper com eficiência?"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## 🔗 Integração com Sistema Onion
|
|
238
|
+
|
|
239
|
+
### Workflow Completo Automatizado
|
|
240
|
+
|
|
241
|
+
Este comando facilita o workflow completo:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# 1. Transcrever reunião
|
|
245
|
+
/product/whisper audio_file=reuniao.m4a
|
|
246
|
+
|
|
247
|
+
# → Gera: reuniao.txt
|
|
248
|
+
|
|
249
|
+
# 2. Extrair conhecimento (Framework EXTRACT)
|
|
250
|
+
/product/extract-meeting source=reuniao.txt level=executive
|
|
251
|
+
|
|
252
|
+
# → Gera: conhecimento estruturado
|
|
253
|
+
|
|
254
|
+
# 3. Consolidar múltiplas reuniões
|
|
255
|
+
/product/consolidate-meetings source=docs/meet/sprint-planning/
|
|
256
|
+
|
|
257
|
+
# → Gera: documento consolidado
|
|
258
|
+
|
|
259
|
+
# 4. Converter em tasks
|
|
260
|
+
/product/convert-to-tasks source=docs/meet/consolidation-*.md
|
|
261
|
+
|
|
262
|
+
# → Gera: tasks no Task Manager
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Otimizações Automáticas
|
|
266
|
+
|
|
267
|
+
- **Formato de saída**: Sempre `txt` para melhor integração
|
|
268
|
+
- **Modelo recomendado**: `small` ou `medium` para português (equilíbrio)
|
|
269
|
+
- **GPU**: Detecta e usa automaticamente se disponível
|
|
270
|
+
- **Idioma**: Sempre `pt` para português
|
|
271
|
+
|
|
272
|
+
## ⚙️ Parâmetros Detalhados
|
|
273
|
+
|
|
274
|
+
### `query`
|
|
275
|
+
- **Opcional**: Pergunta ou necessidade do usuário
|
|
276
|
+
- **Exemplos**:
|
|
277
|
+
- "Como instalar?"
|
|
278
|
+
- "Melhor modelo para português"
|
|
279
|
+
- "FFmpeg não encontrado"
|
|
280
|
+
- "Workflow completo com Sistema Onion"
|
|
281
|
+
|
|
282
|
+
### `audio_file`
|
|
283
|
+
- **Opcional**: Caminho para arquivo de áudio
|
|
284
|
+
- **Formatos suportados**: .mp3, .m4a, .wav, .mp4, etc
|
|
285
|
+
- **Quando fornecido**: Prepara comando de transcrição otimizado
|
|
286
|
+
|
|
287
|
+
### `platform`
|
|
288
|
+
- **Opcional**: windows | linux | macos
|
|
289
|
+
- **Quando não fornecido**: Detecta automaticamente ou pergunta
|
|
290
|
+
- **Uso**: Para comandos específicos de instalação
|
|
291
|
+
|
|
292
|
+
## 💡 Boas Práticas
|
|
293
|
+
|
|
294
|
+
1. **Sempre especifique plataforma** para instalação (mais preciso)
|
|
295
|
+
2. **Forneça arquivo de áudio** quando quiser transcrição direta
|
|
296
|
+
3. **Use workflow completo** para máximo aproveitamento
|
|
297
|
+
4. **Consulte @whisper-specialist** para questões técnicas detalhadas
|
|
298
|
+
5. **Revise transcrição** antes de processar com Framework EXTRACT
|
|
299
|
+
|
|
300
|
+
## ⚠️ Notas Importantes
|
|
301
|
+
|
|
302
|
+
- **Delegação**: Este comando delega para @whisper-specialist
|
|
303
|
+
- **Knowledge Base**: @whisper-specialist consulta `docs/knowbase/tools/whisper.md`
|
|
304
|
+
- **Workflow**: Sempre sugere próximos passos no Sistema Onion
|
|
305
|
+
- **Plataforma**: Detecta automaticamente ou permite especificar
|
|
306
|
+
- **Otimização**: Comandos gerados são otimizados para português e Sistema Onion
|
|
307
|
+
|
|
308
|
+
## 🔄 Relacionamentos
|
|
309
|
+
|
|
310
|
+
**Agente Principal:**
|
|
311
|
+
- `@whisper-specialist` - Especialista técnico em Whisper
|
|
312
|
+
|
|
313
|
+
**Comandos Relacionados:**
|
|
314
|
+
- `/product/extract-meeting` - Extrair conhecimento de transcrições
|
|
315
|
+
- `/product/consolidate-meetings` - Consolidar múltiplas reuniões
|
|
316
|
+
- `/product/convert-to-tasks` - Converter em tasks acionáveis
|
|
317
|
+
|
|
318
|
+
**Knowledge Base:**
|
|
319
|
+
- `docs/knowbase/tools/whisper.md` - Conhecimento completo sobre Whisper
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
**Versão:** 3.0.0
|
|
324
|
+
**Última atualização:** 2025-12-02
|
|
325
|
+
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: e2e
|
|
3
|
+
description: |
|
|
4
|
+
Gera e executa testes end-to-end automaticamente com detecção de framework.
|
|
5
|
+
Use para criar testes E2E seguindo padrões do projeto e executá-los com gravação.
|
|
6
|
+
model: sonnet
|
|
7
|
+
|
|
8
|
+
parameters:
|
|
9
|
+
- name: feature-name
|
|
10
|
+
description: Nome da feature para testar (ex: "login", "checkout")
|
|
11
|
+
required: true
|
|
12
|
+
- name: --generate
|
|
13
|
+
description: Gera arquivo de teste se não existir
|
|
14
|
+
required: false
|
|
15
|
+
- name: --run
|
|
16
|
+
description: Executa os testes
|
|
17
|
+
required: false
|
|
18
|
+
- name: --headless
|
|
19
|
+
description: Executa sem interface gráfica (default: true)
|
|
20
|
+
required: false
|
|
21
|
+
- name: --record
|
|
22
|
+
description: Grava vídeo/screenshots dos testes
|
|
23
|
+
required: false
|
|
24
|
+
- name: --framework
|
|
25
|
+
description: Framework específico (sobrescreve auto-detecção: cypress|playwright|selenium)
|
|
26
|
+
required: false
|
|
27
|
+
|
|
28
|
+
category: test
|
|
29
|
+
tags:
|
|
30
|
+
- testing
|
|
31
|
+
- e2e-tests
|
|
32
|
+
- test-generation
|
|
33
|
+
- automation
|
|
34
|
+
- cypress
|
|
35
|
+
- playwright
|
|
36
|
+
- recording
|
|
37
|
+
|
|
38
|
+
version: "4.0.0"
|
|
39
|
+
updated: "2025-12-20"
|
|
40
|
+
|
|
41
|
+
related_commands:
|
|
42
|
+
- /test/unit
|
|
43
|
+
- /test/integration
|
|
44
|
+
- /validate/test-strategy/create
|
|
45
|
+
- /engineer/work
|
|
46
|
+
|
|
47
|
+
related_agents:
|
|
48
|
+
- test-engineer
|
|
49
|
+
- test-planner
|
|
50
|
+
level: advanced
|
|
51
|
+
context: technical
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# 🎭 Test E2E
|
|
55
|
+
|
|
56
|
+
Gera e executa testes end-to-end automaticamente com detecção inteligente de framework, geração de cenários baseados em features e integração com gravação de vídeo/screenshots.
|
|
57
|
+
|
|
58
|
+
## 🎯 Objetivo
|
|
59
|
+
|
|
60
|
+
Automatizar o ciclo completo de testes E2E:
|
|
61
|
+
- **Auto-detecção** de framework E2E (Cypress, Playwright, Selenium)
|
|
62
|
+
- **Geração de cenários** baseados no nome da feature (login → valid/invalid credentials, etc.)
|
|
63
|
+
- **Selectors inteligentes** usando data-attributes, semantic selectors, text content
|
|
64
|
+
- **Execução** com suporte a headless mode e gravação
|
|
65
|
+
- **Integração** com pipeline CI/CD existente
|
|
66
|
+
|
|
67
|
+
## ⚡ Fluxo de Execução
|
|
68
|
+
|
|
69
|
+
### Passo 1: Validar Feature Name
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Validar formato
|
|
73
|
+
if [[ ! "{{feature-name}}" =~ ^[a-z][a-z0-9-]*$ ]]; then
|
|
74
|
+
echo "❌ ERRO: Feature name deve ser kebab-case (ex: login, user-registration)"
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Validações:**
|
|
80
|
+
```markdown
|
|
81
|
+
SE feature-name vazio:
|
|
82
|
+
❌ ERRO: Nome da feature é obrigatório
|
|
83
|
+
|
|
84
|
+
SE formato inválido:
|
|
85
|
+
❌ ERRO: Use kebab-case (ex: login, checkout-flow)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Passo 2: Detectar Framework E2E
|
|
89
|
+
|
|
90
|
+
**Estratégia de Detecção (em ordem de prioridade):**
|
|
91
|
+
|
|
92
|
+
1. **Verificar configurações:**
|
|
93
|
+
- `cypress.config.{js,ts}` → Cypress detectado
|
|
94
|
+
- `playwright.config.{js,ts}` → Playwright detectado
|
|
95
|
+
- `wdio.conf.{js,ts}` → WebdriverIO/Selenium detectado
|
|
96
|
+
- `package.json` → `cypress`, `@playwright/test`, `selenium-webdriver` em dependencies
|
|
97
|
+
|
|
98
|
+
2. **Buscar arquivos de teste existentes:**
|
|
99
|
+
- `cypress/e2e/**/*.spec.{js,ts}`
|
|
100
|
+
- `e2e/**/*.spec.{js,ts}` (Playwright)
|
|
101
|
+
- `tests/e2e/**/*.{js,ts}` (Selenium)
|
|
102
|
+
|
|
103
|
+
3. **Inferir por estrutura:**
|
|
104
|
+
- Diretório `cypress/` → Cypress
|
|
105
|
+
- Diretório `e2e/` com estrutura Playwright → Playwright
|
|
106
|
+
- `selenium` em package.json → Selenium
|
|
107
|
+
|
|
108
|
+
**Output:**
|
|
109
|
+
```markdown
|
|
110
|
+
✅ Framework detectado: [cypress|playwright|selenium]
|
|
111
|
+
📁 Config: [caminho do arquivo de config]
|
|
112
|
+
🌐 Base URL: [URL detectada do config ou .env]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Se `--framework` fornecido:** Sobrescreve detecção automática
|
|
116
|
+
|
|
117
|
+
### Passo 3: Analisar Estrutura de Testes Existente
|
|
118
|
+
|
|
119
|
+
**Buscar:** `**/*.e2e.{js,ts}`, `**/e2e/**/*.spec.{js,ts}`, `cypress/**/*.spec.{js,ts}`
|
|
120
|
+
|
|
121
|
+
**Extrair:** Page objects, nomenclatura, selectors (data-testid/classes/IDs), helpers/fixtures, base URL
|
|
122
|
+
|
|
123
|
+
**Output:** Page objects (Sim/Não), selectors preferidos, base URL, fixtures/helpers
|
|
124
|
+
|
|
125
|
+
### Passo 4: Gerar Cenários Baseados na Feature
|
|
126
|
+
|
|
127
|
+
**Mapeamento de Features → Cenários:**
|
|
128
|
+
|
|
129
|
+
- **Login:** valid/invalid credentials, empty fields, forgot password, remember me
|
|
130
|
+
- **Checkout:** complete flow, invalid payment, empty cart, shipping options, order summary
|
|
131
|
+
- **User Registration:** valid data, duplicate email, weak password, terms acceptance
|
|
132
|
+
- **Search:** valid query, empty query, special chars, filters, pagination
|
|
133
|
+
- **Genérico:** happy path, invalid input, empty state, edge cases
|
|
134
|
+
|
|
135
|
+
**Output:** Lista de cenários gerados com nomes e descrições
|
|
136
|
+
|
|
137
|
+
### Passo 5: Verificar Arquivo de Teste Existente
|
|
138
|
+
|
|
139
|
+
**Padrões:** Cypress: `cypress/e2e/{{feature}}.spec.{js,ts}`, Playwright: `e2e/{{feature}}.spec.{js,ts}`, Selenium: `tests/e2e/{{feature}}.test.{js,ts}`
|
|
140
|
+
|
|
141
|
+
**Decisão:** Se existe → continua execução (ou pula geração se --generate). Se não existe → gera (se --generate) ou erro
|
|
142
|
+
|
|
143
|
+
### Passo 6: Gerar Arquivo de Teste (SE --generate)
|
|
144
|
+
|
|
145
|
+
#### 6.1 Determinar Selectors Inteligentes
|
|
146
|
+
|
|
147
|
+
**Estratégia (ordem de prioridade):**
|
|
148
|
+
1. Data attributes: `[data-testid]`, `[data-cy]`
|
|
149
|
+
2. Semantic HTML: `<button>`, `<form>`, `<input type="email">`
|
|
150
|
+
3. ARIA: `[aria-label]`, `[role]`
|
|
151
|
+
4. Text content: `contains()`, `getByText()`
|
|
152
|
+
5. Classes/IDs: último recurso
|
|
153
|
+
|
|
154
|
+
#### 6.2 Gerar Estrutura de Teste
|
|
155
|
+
|
|
156
|
+
**Padrão AAA (Arrange, Act, Assert) por framework:**
|
|
157
|
+
|
|
158
|
+
- **Cypress:** `describe()` + `it()`, `cy.visit()`, `cy.get('[data-testid]')`, `cy.url().should()`
|
|
159
|
+
- **Playwright:** `test.describe()` + `test()`, `page.goto()`, `page.getByTestId()`, `expect().toBeVisible()`
|
|
160
|
+
- **Selenium:** `describe()` + `it()`, `browser.url()`, `$('[data-testid]')`, `expect().toHaveUrlContaining()`
|
|
161
|
+
|
|
162
|
+
**Estrutura base:** beforeEach (visit), testes para happy path, error handling, edge cases
|
|
163
|
+
|
|
164
|
+
#### 6.3 Adicionar Page Objects (se padrão existir)
|
|
165
|
+
|
|
166
|
+
**Se projeto usa page objects:** Gerar classe com getters para elementos e métodos para ações (visit, submitForm, etc.)
|
|
167
|
+
|
|
168
|
+
#### 6.4 Criar Arquivo de Teste
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
write {{test-file-path}} [conteúdo gerado]
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Validação:**
|
|
175
|
+
```markdown
|
|
176
|
+
✅ Arquivo gerado: {{test-file-path}}
|
|
177
|
+
📊 Cenários: [N] testes
|
|
178
|
+
∟ Happy path: [N]
|
|
179
|
+
∟ Error handling: [N]
|
|
180
|
+
∟ Edge cases: [N]
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Passo 7: Executar Testes (SE --run)
|
|
184
|
+
|
|
185
|
+
#### 7.1 Preparar Comando de Execução
|
|
186
|
+
|
|
187
|
+
**Comandos por framework:**
|
|
188
|
+
|
|
189
|
+
- **Cypress:** `npx cypress run --spec "cypress/e2e/{{feature}}.spec.ts" [--headless] [--record]` ou `pnpm cypress run`
|
|
190
|
+
- **Playwright:** `npx playwright test e2e/{{feature}}.spec.ts [--headed=false] [--video=on]` ou `pnpm playwright test`
|
|
191
|
+
- **Selenium:** `npx wdio run wdio.conf.ts --spec tests/e2e/{{feature}}.test.ts [--headless]`
|
|
192
|
+
|
|
193
|
+
#### 7.2 Construir Comando Final
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
**Comando base:** [comando do framework]
|
|
197
|
+
|
|
198
|
+
**Flags:**
|
|
199
|
+
SE --headless não fornecido OU --headless=true:
|
|
200
|
+
+ flag headless (default: true)
|
|
201
|
+
|
|
202
|
+
SE --headless=false:
|
|
203
|
+
+ flag headed (abre browser)
|
|
204
|
+
|
|
205
|
+
SE --record:
|
|
206
|
+
+ flag de gravação (vídeo/screenshots)
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
#### 7.3 Executar Testes
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
run_terminal_cmd [comando construído]
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Capturar output:**
|
|
216
|
+
- Resultado dos testes (pass/fail)
|
|
217
|
+
- Screenshots/vídeos (se --record)
|
|
218
|
+
- Erros e stack traces
|
|
219
|
+
- Tempo de execução
|
|
220
|
+
- Artifacts gerados
|
|
221
|
+
|
|
222
|
+
### Passo 8: Apresentar Resultados
|
|
223
|
+
|
|
224
|
+
## 📤 Output Esperado
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
228
|
+
✅ TESTES E2E - {{feature-name}}
|
|
229
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
230
|
+
|
|
231
|
+
🔍 Detecção:
|
|
232
|
+
∟ Framework: [cypress|playwright|selenium]
|
|
233
|
+
∟ Config: [caminho do arquivo de config]
|
|
234
|
+
∟ Base URL: [URL]
|
|
235
|
+
∟ Headless: [true|false]
|
|
236
|
+
|
|
237
|
+
📊 Análise de Padrões:
|
|
238
|
+
∟ Page objects: [✅ Sim | ❌ Não]
|
|
239
|
+
∟ Selectors: [data-testid|semantic|classes]
|
|
240
|
+
∟ Estrutura existente: [encontrada|nova]
|
|
241
|
+
|
|
242
|
+
📝 Arquivo de Teste:
|
|
243
|
+
∟ Status: [✅ Existente | ✅ Gerado | ❌ Não encontrado]
|
|
244
|
+
∟ Caminho: {{test-file-path}}
|
|
245
|
+
∟ Cenários: [N] testes
|
|
246
|
+
├─ Happy path: [N]
|
|
247
|
+
├─ Error handling: [N]
|
|
248
|
+
└─ Edge cases: [N]
|
|
249
|
+
|
|
250
|
+
🧪 Execução:
|
|
251
|
+
∟ Comando: [comando executado]
|
|
252
|
+
∟ Status: [✅ Passou | ❌ Falhou | ⚠️ Parcial]
|
|
253
|
+
∟ Testes executados: [X/Y] passaram
|
|
254
|
+
∟ Tempo: [X]s
|
|
255
|
+
|
|
256
|
+
📹 Gravação (se --record):
|
|
257
|
+
∟ Vídeos: [caminho]
|
|
258
|
+
∟ Screenshots: [caminho]
|
|
259
|
+
∟ Artifacts: [lista]
|
|
260
|
+
|
|
261
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
262
|
+
|
|
263
|
+
🚀 Próximos Passos:
|
|
264
|
+
1. Revisar testes gerados e ajustar selectors
|
|
265
|
+
2. Executar novamente: /test/e2e {{feature-name}} --run
|
|
266
|
+
3. Integrar no CI/CD: /validate/test-strategy/create
|
|
267
|
+
4. Adicionar mais cenários conforme necessário
|
|
268
|
+
|
|
269
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## 📋 Exemplos de Uso
|
|
273
|
+
|
|
274
|
+
**1. Gerar e executar com gravação:**
|
|
275
|
+
```bash
|
|
276
|
+
/test/e2e login --generate --run --record
|
|
277
|
+
```
|
|
278
|
+
→ Detecta framework, gera `login.spec.ts` com cenários de login, executa com vídeo
|
|
279
|
+
|
|
280
|
+
**2. Executar em modo headed:**
|
|
281
|
+
```bash
|
|
282
|
+
/test/e2e checkout --run --headless false
|
|
283
|
+
```
|
|
284
|
+
→ Executa `checkout.spec.ts` com browser visível
|
|
285
|
+
|
|
286
|
+
**3. Apenas gerar teste:**
|
|
287
|
+
```bash
|
|
288
|
+
/test/e2e user-registration --generate
|
|
289
|
+
```
|
|
290
|
+
→ Gera `user-registration.spec.ts` com cenários de registro, não executa
|
|
291
|
+
|
|
292
|
+
**4. Executar teste existente:**
|
|
293
|
+
```bash
|
|
294
|
+
/test/e2e search --run --record
|
|
295
|
+
```
|
|
296
|
+
→ Executa `search.spec.ts` existente com gravação, não gera novo arquivo
|
|
297
|
+
|
|
298
|
+
## ⚙️ Parâmetros Detalhados
|
|
299
|
+
|
|
300
|
+
| Parâmetro | Tipo | Obrigatório | Descrição |
|
|
301
|
+
|-----------|------|-------------|-----------|
|
|
302
|
+
| `feature-name` | string | ✅ | Nome da feature em kebab-case |
|
|
303
|
+
| `--generate` | flag | ❌ | Gera arquivo de teste se não existir |
|
|
304
|
+
| `--run` | flag | ❌ | Executa os testes |
|
|
305
|
+
| `--headless` | boolean | ❌ | Executa sem interface (default: true) |
|
|
306
|
+
| `--record` | flag | ❌ | Grava vídeo/screenshots |
|
|
307
|
+
| `--framework` | string | ❌ | Framework específico (sobrescreve auto-detecção) |
|
|
308
|
+
|
|
309
|
+
## 🔗 Comandos Relacionados
|
|
310
|
+
|
|
311
|
+
- `/test/unit` - Testes unitários (White-box)
|
|
312
|
+
- `/test/integration` - Testes de integração (Grey-box)
|
|
313
|
+
- `/validate/test-strategy/create` - Criar estratégia completa de testes
|
|
314
|
+
- `/engineer/work` - Continuar desenvolvimento
|
|
315
|
+
|
|
316
|
+
## ⚠️ Validações e Regras
|
|
317
|
+
|
|
318
|
+
### Validações Obrigatórias
|
|
319
|
+
|
|
320
|
+
1. **Feature name deve ser válido:**
|
|
321
|
+
```markdown
|
|
322
|
+
SE feature-name vazio:
|
|
323
|
+
❌ ERRO: Nome da feature é obrigatório
|
|
324
|
+
|
|
325
|
+
SE formato inválido:
|
|
326
|
+
❌ ERRO: Use kebab-case (ex: login, checkout-flow)
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
2. **Framework deve ser detectável ou fornecido:**
|
|
330
|
+
```markdown
|
|
331
|
+
SE nenhum framework detectado E --framework não fornecido:
|
|
332
|
+
❌ ERRO: Não foi possível detectar framework E2E
|
|
333
|
+
💡 Instale Cypress/Playwright ou use --framework [nome]
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
3. **Arquivo de teste deve existir para execução:**
|
|
337
|
+
```markdown
|
|
338
|
+
SE --run fornecido E arquivo não existe E --generate não fornecido:
|
|
339
|
+
❌ ERRO: Arquivo de teste não encontrado
|
|
340
|
+
💡 Use --generate para criar automaticamente
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### Regras de Negócio
|
|
344
|
+
|
|
345
|
+
1. **Auto-detecção tem prioridade** sobre --framework, exceto se fornecido
|
|
346
|
+
2. **Geração segue padrões** do projeto (analisa testes existentes)
|
|
347
|
+
3. **Selectors inteligentes** priorizam data-attributes e semantic HTML
|
|
348
|
+
4. **Headless é default** (true) para CI/CD, use `--headless false` para debug
|
|
349
|
+
5. **Gravação** sempre captura em falhas, `--record` habilita em sucessos também
|
|
350
|
+
|
|
351
|
+
## 🔧 Suporte por Framework
|
|
352
|
+
|
|
353
|
+
| Framework | Headless | Gravação | Page Objects | CI/CD |
|
|
354
|
+
|-----------|----------|----------|--------------|-------|
|
|
355
|
+
| Cypress | ✅ | ✅ | ✅ | ✅ |
|
|
356
|
+
| Playwright | ✅ | ✅ | ✅ | ✅ |
|
|
357
|
+
| Selenium | ✅ | ⚠️ | ✅ | ✅ |
|
|
358
|
+
|
|
359
|
+
## 📚 Referências
|
|
360
|
+
|
|
361
|
+
- **Agente de Testes:** @test-engineer
|
|
362
|
+
- **Framework de Testes:** `docs/knowbase/frameworks/framework_testes.md`
|
|
363
|
+
- **Cypress Docs:** https://docs.cypress.io
|
|
364
|
+
- **Playwright Docs:** https://playwright.dev
|
|
365
|
+
|
|
366
|
+
## ⚠️ Notas Importantes
|
|
367
|
+
|
|
368
|
+
- **Auto-detecção inteligente:** Analisa configurações e estrutura do projeto
|
|
369
|
+
- **Geração conservadora:** Cria testes básicos, desenvolvedor deve expandir
|
|
370
|
+
- **Selectors robustos:** Prioriza data-attributes para estabilidade
|
|
371
|
+
- **CI/CD ready:** Headless por padrão, gravação opcional
|
|
372
|
+
- **Page objects:** Detecta e segue padrão se existir no projeto
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
**Versão:** 3.0.0
|
|
377
|
+
**Última atualização:** 2025-12-03
|
|
378
|
+
**Mantido por:** Sistema Onion
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## 📚 Pré-requisitos
|
|
385
|
+
|
|
386
|
+
Domine comandos starter antes de usar este comando intermediate/advanced.
|
|
387
|
+
|
|
388
|
+
Consulte os comandos help para ver hierarquia completa e comandos relacionados:
|
|
389
|
+
- /business/help --level=starter
|
|
390
|
+
- /technical/help --level=starter
|
|
391
|
+
|
|
392
|
+
💡 Comandos intermediate/advanced assumem familiaridade com workflows básicos do contexto.
|